def __init__(self, cr):
        DistributedAvatar.__init__(self, cr)
        DistributedSmoothNode.__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.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
 def announceHealth(self, level, hp):
     DistributedAvatar.announceHealth(self, level, hp)
     if level == 1:
         healthSfx = base.audio3d.loadSfx("phase_3/audio/sfx/health.mp3")
         base.audio3d.attachSoundToObject(healthSfx, self)
         SoundInterval(healthSfx).start()
         del healthSfx
    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

        self.eyes = None
        self.lpupil = None
        self.rpupil = None
        self.eyesOpen = None
        self.eyesClosed = None
        DistributedAvatar.disable(self)
        Avatar.disable(self)
        DistributedSmoothNode.disable(self)
    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:
                messenger.send(PCTMM.getCogOutOfRangeEvent())
                self.isInRange = False
            self.interruptAttack()

        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)
    def __init__(self, cr):
        Suit.__init__(self)
        DistributedAvatar.__init__(self, cr)
        DistributedSmoothNode.__init__(self, cr)

        self.anim = None
        self._state = SuitState.ALIVE
        self.dept = None
        self.variant = None
        self.suitPlan = None
        self.level = None
        self.moveIval = None
        self.hpFlash = None

        # For PythonCTMusicManager:
        # Are we in range of the localAvatar?
        self.isInRange = False

        self.chaseTarget = 0

        self.suitFSM = ClassicFSM('DistributedSuit', [
            State('off', self.enterSuitOff, self.exitSuitOff),
            State('walking', self.enterWalking, self.exitWalking),
            State('flyingDown', self.enterFlyingDown, self.exitFlyingDown),
            State('flyingUp', self.enterFlyingUp, self.exitFlyingUp),
            State('lured', self.enterLured, self.exitLured)
        ], 'off', 'off')
        self.stateIndex2suitState = {}
        self.suitFSM.enterInitialState()
        self.makeStateDict()
 def announceHealth(self, level, hp):
     DistributedAvatar.announceHealth(self, level, hp)
     if level == 1:
         healthSfx = base.audio3d.loadSfx(SuitGlobals.healedSfx)
         base.audio3d.attachSoundToObject(healthSfx, self)
         SoundInterval(healthSfx, node=self).start()
         del healthSfx
    def setHealth(self, health):
        if health > self.health:
            flashColor = VBase4(0, 1, 0, 1)
        else:
            if health < self.health:
                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.interruptAttack()
        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)
        return
 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
Exemple #9
0
 def __init__(self, cr):
     try:
         self.DistributedVicePresident_initialized
         return
     except:
         self.DistributedVicePresident_initialized = 1
     VicePresident.__init__(self)
     DistributedAvatar.__init__(self, cr)
 def setChat(self, chat):
     if self.charId == SLEEP_DONALD:
         chat = "." + chat
     DistributedAvatar.setChat(self, chat)
     if self.chatsSinceLastNoise >= self.chatsWithoutNoise or self.chatsSinceLastNoise == 0:
         base.playSfx(self.speechSound, node=self)
         self.chatsSinceLastNoise = 0
         self.chatsWithoutNoise = random.randint(1, 5)
     self.chatsSinceLastNoise += 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)
     DistributedSmoothNode.delete(self)
Exemple #12
0
 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')
Exemple #13
0
 def delete(self):
     try:
         self.DistributedToon_deleted
     except:
         self.DistributedToon_deleted = 1
         self.tutDone = None
         self.defaultShard = None
         Toon.Toon.delete(self)
         DistributedAvatar.delete(self)
         DistributedSmoothNode.delete(self)
     return
Exemple #14
0
    def delete(self):
        try:
            self.DistributedToon_deleted
        except:
            self.DistributedToon_deleted = 1
            self.tutDone = None
            self.stopSmooth()
            Toon.Toon.delete(self)
            DistributedAvatar.delete(self)
            DistributedSmoothNode.delete(self)

        return
	def disable(self):
		self.fsm.requestFinalState()
		del self.fsm
		for projs in self.piesInFlight:
			projs.cleanup()
		self.piesInFlight = None
		if self.explosion:
			self.explosion.removeNode()
			self.explosion = None
		self.removeTurret()
		DistributedSmoothNode.disable(self)
		DistributedAvatar.disable(self)
 def disable(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)
     return
 def disable(self):
     base.taskMgr.remove(self.uniqueName('monitorLocalAvDistance'))
     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)
Exemple #18
0
 def disable(self):
     self.busy = None
     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.__removeHeadMeter()
     self.ignore('showAvId')
     self.ignore('showName')
     self.token = None
     Toon.Toon.disable(self)
     DistributedAvatar.disable(self)
     return
Exemple #19
0
    def disable(self):
        self.fsm.requestFinalState()
        del self.fsm
        if self.track:
            self.track.pause()
            self.track = None
        for ent in self.entities:
            ent.cleanup()

        self.entities = None
        if self.explosion:
            self.explosion.removeNode()
            self.explosion = None
        self.removeTurret()
        DistributedSmoothNode.disable(self)
        DistributedAvatar.disable(self)
        return
 def announceGenerate(self):
     DistributedAvatar.announceGenerate(self)
     DistributedSmoothNode.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.stashBodyCollisions()
         boat = self.cr.playGame.hood.loader.geom.find('**/*donalds_boat*')
         boat.find('**/wheel').hide()
         self.setPos(0, -1, 3.95)
         self.reparentTo(boat)
         self.loop('wheel')
     else:
         self.reparentTo(render)
 def disable(self):
     if self.suitTrack != None:
         self.suitTrack.finish()
         DelayDelete.cleanupDelayDeletes(self.suitTrack)
         self.suitTrack = None
     self.stopSmooth()
     self.suitFSM.requestFinalState()
     self.suitFSM = None
     self.suitState2stateIndex = None
     self.stateIndex2suitState = None
     self.anim = None
     self.state = None
     self.health = None
     self.type = None
     self.team = None
     self.head = None
     self.skeleton = None
     self.battle = None
     Suit.disable(self)
     DistributedAvatar.disable(self)
    def __init__(self, cr):
        try:
            self.DistributedSuit_initialized
            return
        except:
            self.DistributedSuit_initialized = 1
        Suit.__init__(self)
        DistributedAvatar.__init__(self, cr)
        DistributedSmoothNode.__init__(self, cr)

        self.suitFSM = ClassicFSM('DistributedSuit',
            [
                State('off', self.enterSuitOff, self.exitSuitOff),
                State('walking', self.enterWalking, self.exitWalking),
                State('flyingDown', self.enterFlyingDown, self.exitFlyingDown),
                State('flyingUp', self.enterFlyingUp, self.exitFlyingUp),
                State('bossFlying', self.enterBossFlying, self.exitBossFlying)
            ],
            'off', 'off'
        )
        self.suitFSM.enterInitialState()
        self.makeStateDict()
        self.makeAnimStateDict()

        # These are just default values, we'll set them later on.
        self.anim = None
        self.state = "alive"
        self.health = None
        self.type = None
        self.team = None
        self.head = None
        self.skeleton = 0
        self.battle = None
        self.suitState = None
        self.startPoint = None
        self.endPoint = None
        self.moveIval = None
        self.walkPaused = None
        self.animIval = None
        self.level = None
        return
Exemple #23
0
    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.questManager = QuestManager.QuestManager()
        self.token = -1
        self.ghost = 0
        self.puInventory = []
        self.equippedPU = -1
        self.backpack = None
        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
        return
    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)
 def __init__(self, cr):
     Suit.__init__(self)
     DistributedAvatar.__init__(self, cr)
     DistributedSmoothNode.__init__(self, cr)
     self.anim = None
     self.state = SuitState.ALIVE
     self.dept = None
     self.variant = None
     self.suitPlan = None
     self.level = None
     self.moveIval = None
     self.hpFlash = None
     self.suitFSM = ClassicFSM('DistributedSuit', [
      State('off', self.enterSuitOff, self.exitSuitOff),
      State('walking', self.enterWalking, self.exitWalking),
      State('flyingDown', self.enterFlyingDown, self.exitFlyingDown),
      State('flyingUp', self.enterFlyingUp, self.exitFlyingUp),
      State('lured', self.enterLured, self.exitLured)], 'off', 'off')
     self.stateIndex2suitState = {}
     self.suitFSM.enterInitialState()
     self.makeStateDict()
     return
Exemple #26
0
    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.questManager = QuestManager.QuestManager()
        self.token = -1
        self.ghost = 0
        self.puInventory = []
        self.equippedPU = -1
        self.backpackId = None
        self.backpack = None
        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.initAmmo = []
        self.initGagIds = []
        self.headMeter = None
        self.firstTimeChangingHP = True
        self.gagBPData = []
        self.quests = []
        self.tier = None
        self.questHistory = None
        self.busy = 1
        self.friends = None
        self.tutDone = 0
        self.hoodsDiscovered = []
        self.teleportAccess = []
        self.lastHood = 0
        return
Exemple #27
0
 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.busy = None
     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.__removeHeadMeter()
     self.ignore('showAvId')
     self.ignore('showName')
     self.token = None
     self.stopSmooth()
     Toon.Toon.disable(self)
     DistributedAvatar.disable(self)
	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('lockOn', self.enterLockOn, self.exitLockOn),
				State('shoot', self.enterShoot, self.exitShoot)
			],
			'off', 'off'
		)
		self.fsm.enterInitialState()
		self.cannon = None
		self.track = None
		self.avatar = None
		self.readyPie = None
		self.explosion = None
		self.wallCollNode = None
		self.eventCollNode = None
		self.event = None
		self.piesInFlight = []
 def setHealth(self, hp):
     DistributedAvatar.setHealth(self, hp)
     if self.isLocal():
         base.localAvatar.getMyBattle().getTurretManager().updateTurretGui()
Exemple #30
0
 def announceGenerate(self):
     DistributedAvatar.announceGenerate(self)
     if self.animFSM.getCurrentState().getName() == 'off':
         self.setAnimState('neutral')
     self.startBlink()
 def generate(self):
     DistributedAvatar.generate(self)
     DistributedSmoothNode.generate(self)
 def setupNameTag(self):
     DistributedAvatar.setupNameTag(self)
     self.nametag.setNametagColor(
         NametagGlobals.NametagColors[NametagGlobals.CCNPC])
     self.nametag.setActive(0)
     self.nametag.updateAll()
 def announceGenerate(self):
     DistributedAvatar.announceGenerate(self)
     DistributedSmoothNode.announceGenerate(self)
     self.healthLabel.setScale(1.1)
     self.deathEvent = self.uniqueName('DistributedPieTurret-death')
     self.makeTurret()
Exemple #34
0
 def generate(self):
     DistributedAvatar.generate(self)
     DistributedSmoothNode.generate(self)
     self.startSmooth()
Exemple #35
0
 def disable(self):
     VicePresident.destroy(self)
     DistributedAvatar.disable(self)
Exemple #36
0
 def announceHealthAndPlaySound(self, level, hp):
     DistributedAvatar.announceHealth(self, level, hp)
     hpSfx = base.audio3d.loadSfx('phase_11/audio/sfx/LB_toonup.mp3')
     base.audio3d.attachSoundToObject(hpSfx, self)
     SoundInterval(hpSfx).start()
     del hpSfx