Example #1
0
 def disable(self):
     self.stopSmooth()
     taskMgr.remove(self.uniqueName("watchTarget"))
     if self.pathVisRoot:
         self.pathVisRoot.removeNode()
         self.pathVisRoot = None
     DistributedAvatar.disable(self)
 def delete(self):
     try:
         self.DistributedToon_deleted
     except:
         self.DistributedToon_deleted = 1
         del self.tunnelTrack
         del self.dmgFadeIval
         del self.token
         del self.ghost
         del self.puInventory
         del self.equippedPU
         del self.backpack
         del self.animState2animId
         del self.animId2animState
         del self.firstTimeChangingHP
         del self.quests
         del self.tier
         del self.questHistory
         del self.busy
         del self.friends
         del self.tutDone
         del self.hoodsDiscovered
         del self.teleportAccess
         del self.lastHood
         del self.defaultShard
         del self.numGagSlots
         Toon.Toon.delete(self)
         DistributedAvatar.delete(self)
         DistributedSmoothNode.delete(self)
     return
    def setHealth(self, health):
        if health > self.health:
            # We got an hp boost. Flash green.
            flashColor = VBase4(0, 1, 0, 1)
        elif health < self.health:
            # We got an hp loss. Flash red.
            flashColor = VBase4(1, 0, 0, 1)
        DistributedAvatar.setHealth(self, health)

        def doBossFlash():
            if not self.isEmpty():
                LerpColorScaleInterval(self, 0.2, flashColor).start()

        def clearBossFlash():
            if not self.isEmpty():
                self.clearColorScale()

        if self.isDead():
            self.setChaseTarget(0)
            base.taskMgr.remove(self.uniqueName('monitorLocalAvDistance'))
            #if self.isInRange:
            #    self.isInRange = False
            #self.gruntSound.play()

        if self.getLevel() > 12:
            if self.hpFlash:
                self.hpFlash.finish()
                self.hpFlash = None
            self.hpFlash = Sequence(Func(doBossFlash), Wait(0.2),
                                    Func(clearBossFlash))
            self.hpFlash.start()
        self.updateHealthBar(health)
Example #4
0
 def __init__(self, cr):
     DistributedAvatar.__init__(self, cr)
     DistributedSmoothNode.__init__(self, cr)
     self.fsm = ClassicFSM('DistributedPieTurret', [
         State('off', self.enterOff, self.exitOff),
         State('scan', self.enterScan, self.exitScan),
         State('shoot', self.enterShoot, self.exitShoot)
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.reloadTime = 0.25
     self.cannon = None
     self.track = None
     self.owner = None
     self.gag = None
     self.readyGag = None
     self.hitGag = None
     self.explosion = None
     self.wallCollNode = None
     self.eventCollNode = None
     self.event = None
     self.suit = None
     self.eventId = None
     self.entities = []
     self.upgradeID = None
     self.deathEvent = None
Example #5
0
    def disable(self):
        base.taskMgr.remove(self.uniqueName('monitorRange'))
        self.stopBlink()
        self.fsm.requestFinalState()
        self.fsm = None
        self.neutralFSM.requestFinalState()
        self.neutralFSM = None
        self.charId = None
        self.geoEyes = None
        self.avatarType = None
        self.isInRange = None
        self.currentPointLetter = None
        self.walkIval = None
        self.currentChat = None
        self.talkEnabled = None
        self.speechSound = None
        self.chatsSinceLastNoise = None

        if self.santaHat:
            self.santaHat.removeNode()
            self.santaHat = None

        if self.headNode:
            self.headNode.removeNode()
            self.headNode = None

        self.eyes = None
        self.lpupil = None
        self.rpupil = None
        self.eyesOpen = None
        self.eyesClosed = None
        DistributedAvatar.disable(self)
        Avatar.disable(self)
Example #6
0
    def announceGenerate(self):
        DistributedAvatar.announceGenerate(self)
        taskMgr.add(self.__watchTargetTask, self.uniqueName("watchTarget"))

        self.startSmooth()

        self.reparentTo(render)
Example #7
0
    def __init__(self, cr):
        DistributedAvatar.__init__(self, cr)

        self.activities = {ACT_NONE: IdleActivity(self),
                           ACT_IDLE:    IdleActivity(self),
                           ACT_VP_THROW: ThrowActivity(self),
                           ACT_VP_STUN:  Stun(self),
                           ACT_VP_DAMAGE_REACT: DamageReact(self),
                           ACT_DIE:     Die(self),
                           ACT_RANGE_ATTACK2:   Jump(self)}

        self.frontDoorIval = None
        self.rearDoorIval = None
        self.throwGearsSnd = None
        self.treads = None

        self.addSound("stun", self.StunSoundPath)
        self.addSound("raise", self.RaiseSoundPath)
        self.addSound("jumpStart", self.JumpStartSoundPath)
        self.addSound("jumpEnd", self.JumpEndSoundPath)
        self.addSound("chirp", self.ChirpSoundPath)

        self.addSound("statement", self.StatementSoundPath)
        self.addSound("question", self.QuestionSoundPath)
        self.addSound("grunt", self.GruntSoundPath)
        self.chatSoundTable[CHAT_SHORT] = "statement"
        self.chatSoundTable[CHAT_MEDIUM] = "statement"
        self.chatSoundTable[CHAT_LONG] = "statement"
        self.chatSoundTable[CHAT_EXCLAIM] = "statement"
        self.chatSoundTable[CHAT_QUESTION] = "question"
        self.chatSoundTable[CHAT_HOWL] = "statement"
Example #8
0
    def announceGenerate(self):
        DistributedAvatar.announceGenerate(self)

        # Picked up by DistributedBattleZone:
        messenger.send('suitCreate', [self])

        self.startSmooth()
        self.reparentTo(render)
Example #9
0
    def __init__(self, cr):
        DistributedAvatar.__init__(self, cr)
        Goon.__init__(self)
        self.moveTrack = None

        self.pathVisRoot = render.attachNewNode('pathVisRoot')

        self._watchTarget = None
Example #10
0
 def disable(self):
     self.stopSmooth()
     self.eyeNode = None
     self.hatType = None
     self.eyeColor = None
     self.idealEyeColor = None
     self.hatNode = None
     DistributedAvatar.disable(self)
Example #11
0
    def think(self):
        DistributedAvatar.think(self)

        # Update interpolated eye color
        if (self.idealEyeColor - self.eyeColor).lengthSquared() > 0.05 * 0.05:
            self.eyeColor = CIGlobals.lerpWithRatio(self.idealEyeColor,
                                                    self.eyeColor,
                                                    self.EyeColorLerpRatio)
            self.eyeNode.setColorScale(Vec4(self.eyeColor, 1.0), 1)
 def delete(self):
     Suit.delete(self)
     del self.anim
     del self._state
     del self.dept
     del self.variant
     del self.suitPlan
     del self.moveIval
     DistributedAvatar.delete(self)
Example #13
0
 def delete(self):
     try:
         self.DistributedToon_deleted
     except:
         self.DistributedToon_deleted = 1
         del self.track
         Toon.Toon.delete(self)
         DistributedAvatar.delete(self)
     return
 def announceHealth(self, level, hp, extraId=-1):
     DistributedAvatar.announceHealth(self, level, hp, extraId)
     if level == 1:
         healthSfx = base.audio3d.loadSfx(SuitGlobals.healedSfx)
         base.audio3d.attachSoundToObject(healthSfx, self)
         SoundInterval(healthSfx, node=self).start()
         del healthSfx
     if hp < 0:
         self.doDamageFade()
 def __init__(self, cr):
     DistributedAvatar.__init__(self, cr)
     self.owner = None
     self.movementFSM = ClassicFSM('Pet', [
         State('off', self.enterOff, self.exitOff),
         State('forward', self.enterMoveForward, self.exitMoveForward),
         State('backward', self.enterMoveBackward, self.exitMoveBackward),
         State('left', self.enterTurnLeft, self.exitTurnLeft),
         State('right', self.enterTurnRight, self.exitTurnRight)
     ], 'off', 'off')
Example #16
0
    def disable(self):
        self.stopLookTask()

        taskMgr.remove(self.uniqueName('blinkOnTurn'))
        if self.track != None:
            self.track.finish()
            DelayDelete.cleanupDelayDeletes(self.track)
            self.track = None
        self.ignore('showAvId')
        self.ignore('showName')
        self.stopSmooth()
        Toon.Toon.disable(self)
        DistributedAvatar.disable(self)
    def __init__(self, cr):
        Suit.__init__(self)
        DistributedAvatar.__init__(self, cr)

        self.anim = None
        self.dept = None
        self.variant = None
        self.suitPlan = None
        self.level = None
        self.moveIval = None
        self.hpFlash = None

        self.chaseTarget = 0
Example #18
0
 def disable(self):
     self.stopSmooth()
     self.clearFrontDoorIval()
     self.clearRearDoorIval()
     self.headModel = None
     self.throwGearsSnd = None
     self.rearDoorCloseSnd = None
     self.rearDoorOpenSnd = None
     self.frontDoorOpenSnd = None
     self.frontDoorCloseSnd = None
     self.frontDoor = None
     self.rearDoor = None
     self.treads = None
     DistributedAvatar.disable(self)
Example #19
0
 def setHealth(self, health):
     oldHp = self.getHealth()
     self.handleHealthChange(health, self.getHealth())
     DistributedAvatar.setHealth(self, health)
     if self.doId != base.localAvatar.doId:
         if not self.firstTimeChangingHP:
             if health < self.getMaxHealth():
                 if not self.headMeter:
                     self.__makeHeadMeter()
                 else:
                     self.__updateHeadMeter(oldHp)
             else:
                 self.__removeHeadMeter()
     self.firstTimeChangingHP = False
Example #20
0
    def __init__(self, cr):
        try:
            self.DistributedToon_initialized
            return
        except:
            self.DistributedToon_initialized = 1
        Toon.Toon.__init__(self, cr)
        DistributedAvatar.__init__(self, cr)

        self.lookMode = self.LMOff
        self.cageBone = None
        self.lookTask = None
        self.anim = ""

        return
Example #21
0
 def announceGenerate(self):
     DistributedAvatar.announceGenerate(self)
     self.loadChar()
     self.startBlink()
     base.taskMgr.add(self.__monitorRange, self.uniqueName('monitorRange'))
     self.sendUpdate('requestStateData')
     if self.charId == SAILOR_DONALD:
         self.disableRay()
         self.cleanupPhysics()
         boat = self.cr.playGame.hood.loader.geom.find('**/*donalds_boat*')
         boat.find('**/wheelNode').stash()
         self.setPos(0, -1, 3.95)
         self.reparentTo(boat)
         self.loop('wheel')
     else:
         self.reparentTo(render)
    def disable(self):
        if self.tunnelTrack:
            self.ignore(self.tunnelTrack.getDoneEvent())
            self.tunnelTrack.finish()
            self.tunnelTrack = None
        if self.dmgFadeIval:
            self.dmgFadeIval.finish()
            self.dmgFadeIval = None
        self.token = None
        self.ghost = None
        self.puInventory = None
        self.equippedPU = None
        if self.backpack:
            self.backpack.cleanup()
            self.backpack = None
        self.animState2animId = None
        self.animId2animState = None
        self.firstTimeChangingHP = None
        self.quests = None
        self.tier = None
        self.questHistory = None
        self.busy = None
        self.friends = None
        self.tutDone = None
        self.hoodsDiscovered = None
        self.teleportAccess = None
        self.lastHood = None
        self.defaultShard = None
        self.numGagSlots = None
        self.__removeHeadMeter()
        self.destroyBattleMeter()

        taskMgr.remove(self.uniqueName('sBAL'))
        taskMgr.remove(self.uniqueName('blinkOnTurn'))
        if self.track != None:
            self.track.finish()
            DelayDelete.cleanupDelayDeletes(self.track)
            self.track = None
        self.stopBlink()
        self.ignore('showAvId')
        self.ignore('showName')
        self.token = None
        self.stopSmooth()
        Toon.Toon.disable(self)
        DistributedAvatar.disable(self)
        DistributedSmoothNode.disable(self)
    def __init__(self, cr):
        try:
            self.DistributedToon_initialized
            return
        except:
            self.DistributedToon_initialized = 1
        Toon.Toon.__init__(self, cr)
        DistributedAvatar.__init__(self, cr)
        DistributedSmoothNode.__init__(self, cr)
        self.token = -1
        self.ghost = 0
        self.puInventory = []
        self.equippedPU = -1
        self.backpack = Backpack(self)
        self.animState2animId = {}
        self.battleMeter = None
        for index in range(len(self.animFSM.getStates())):
            self.animState2animId[self.animFSM.getStates()
                                  [index].getName()] = index
        self.animId2animState = {
            v: k
            for k, v in self.animState2animId.items()
        }
        self.headMeter = None
        self.firstTimeChangingHP = True
        self.quests = ""
        self.tier = None
        self.questHistory = None
        self.busy = 1
        self.friends = None
        self.tutDone = 0
        self.hoodsDiscovered = []
        self.teleportAccess = []
        self.lastHood = 0
        self.defaultShard = 0
        self.dmgFadeIval = None
        self.tunnelTrack = None
        self.numGagSlots = 0
        self.trackExperience = dict(GagGlobals.DefaultTrackExperiences)

        self.takeDmgSfx = base.audio3d.loadSfx(
            "phase_5/audio/sfx/tt_s_ara_cfg_toonHit.ogg")
        base.audio3d.attachSoundToObject(self.takeDmgSfx, self)

        return
    def disable(self):
        self.stopSmooth()

        # Picked up by DistributedBattleZone:
        messenger.send('suitDelete', [self])

        self.anim = None
        self._state = None
        self.dept = None
        self.variant = None
        self.suitPlan = None
        if self.hpFlash:
            self.hpFlash.finish()
            self.hpFlash = None
        if self.moveIval:
            self.moveIval.pause()
            self.moveIval = None
        Suit.disable(self)
        DistributedAvatar.disable(self)
Example #25
0
    def __init__(self, cr):
        try:
            self.DistributedToon_initialized
            return
        except:
            self.DistributedToon_initialized = 1
        Toon.Toon.__init__(self, cr)
        DistributedAvatar.__init__(self, cr)

        self.lookMode = self.LMOff
        self.cageBone = None
        self.lookTask = None
        self.anim = ""

        self.headMeter = None
        self.firstTimeChangingHP = True

        self.addSound('oof', 'phase_5/audio/sfx/tt_s_ara_cfg_toonHit.ogg')

        return
Example #26
0
    def disable(self):
        self.fsm.requestFinalState()
        del self.fsm

        # This should fix crashes related to Sequences.
        if self.track:
            self.track.pause()
            self.track = None

        # Cleanup entities.
        for ent in self.entities:
            ent.cleanup()
        self.entities = None

        # Get rid of explosions.
        if self.explosion:
            self.explosion.removeNode()
            self.explosion = None

        self.removeTurret()
        DistributedSmoothNode.disable(self)
        DistributedAvatar.disable(self)
Example #27
0
    def __init__(self, cr):
        DistributedAvatar.__init__(self, cr)

        self.fsm = ClassicFSM('DDisneyChar', [
            State('off', self.enterOff, self.exitOff),
            State('walking', self.enterWalking, self.exitWalking),
            State('neutral', self.enterNeutral, self.exitNeutral)
        ], 'off', 'off')
        self.fsm.enterInitialState()
        self.neutralFSM = ClassicFSM('DDisneyChar-neutral', [
            State('off', self.enterOff, self.exitOff),
            State('turn2target', self.enterTurn2Target, self.exitTurn2Target),
            State('talk2target', self.enterTalk2Target, self.exitTalk2Target)
        ], 'off', 'off')
        self.neutralFSM.enterInitialState()

        self.charId = 0
        self.geoEyes = 0
        self.avatarType = CIGlobals.CChar
        self.headNode = None
        self.isInRange = False
        self.currentPointLetter = "a"
        self.walkIval = None
        self.currentChat = ""
        self.talkEnabled = True
        self.speechSound = None

        self.chatsSinceLastNoise = 0
        self.chatsWithoutNoise = 5

        self.eyes = None
        self.lpupil = None
        self.rpupil = None
        self.eyesOpen = None
        self.eyesClosed = None

        self.santaHat = None
Example #28
0
    def __init__(self, cr):
        DistributedAvatar.__init__(self, cr)
        self.eyeNode = None
        self.hatNode = None
        self.hatType = self.HatType_Security

        self.activities = {
            ACT_WAKE_ANGRY: Goon_WakeAngry(self),
            ACT_RANGE_ATTACK1: Goon_FireLaser(self)
        }

        self.eyeColor = Vec3(0)
        self.idealEyeColor = Vec3(0)

        # Do some mixing on the idle animation
        self.moveAnimProperties['idle'] = {
            'method': 'pingpong',
            'args': {
                'fromFrame': 94,
                'toFrame': 96
            }
        }

        self.standWalkRunReverse = [('idle', 'walk', 0.0, 5.0, 1.0, 1.0)]
Example #29
0
 def generate(self):
     DistributedAvatar.generate(self)
     self.startSmooth()
Example #30
0
 def announceGenerate(self):
     DistributedAvatar.announceGenerate(self)
     if self.animFSM.getCurrentState().getName() == 'off':
         self.setAnimState('Happy')