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
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)
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')
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
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)
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
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
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
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
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()
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()
def generate(self): DistributedAvatar.generate(self) DistributedSmoothNode.generate(self) self.startSmooth()
def disable(self): VicePresident.destroy(self) DistributedAvatar.disable(self)
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