def setChat(self, chat): self.clearChatbox() Avatar.setChat(self, chat) self.chat = chat chatDial = None questionDial = self.voice.getSoundFile('question') question02Dial = None gruntDial = self.voice.getSoundFile('grunt') statementDial = self.voice.getSoundFile('statement') if self.voice == Voice.NORMAL: question02Dial = self.voice.getSoundFile('question_2') if '!' in self.chat: chatDial = self.audio3d.loadSfx(gruntDial) elif '?' in self.chat: questionDials = [questionDial] if self.voice == Voice.NORMAL: questionDials.append(question02Dial) chatDial = self.audio3d.loadSfx(random.choice(questionDials)) else: chatDial = self.audio3d.loadSfx(statementDial) self.chatDial = chatDial if self.variant == Variant.SKELETON: self.audio3d.attachSoundToObject(self.chatDial, self) else: self.audio3d.attachSoundToObject(self.chatDial, self.headModel) base.playSfx(self.chatDial, node=self)
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 disable(self): if self.suitTrack: self.suitTrack.finish() DelayDelete.cleanupDelayDeletes(self.suitTrack) self.suitTrack = None self.animFSM.requestFinalState() self.cleanup() Avatar.disable(self)
def setupNameTag(self, tempName=None): Avatar.setupNameTag(self, tempName=tempName) if self.nametag: if self.level > 0: self.nametag.setText(self.nametag.getText() + '\n%s\nLevel %s' % (self.dept.getName(), self.level)) else: self.nametag.setText(self.nametag.getText() + '\n%s' % (self.dept.getName()))
def generateCog(self, isLose=0): self.cleanup() if not isLose: if self.variant == Variant.SKELETON or self.variant == Variant.ZOMBIE: self.loadModel( 'phase_5/models/char/cog%s_robot-zero.bam' % str(self.suit), 'body') else: self.loadModel( 'phase_3.5/models/char/suit%s-mod.bam' % str(self.suit), 'body') animations = SuitGlobals.animations anims = {} for anim in animations: if self.suit not in anim.getSuitTypes(): continue path = 'phase_%s/models/char/suit%s-%s.bam' % ( anim.getPhase(), self.suit, anim.getFile()) anims[anim.getName()] = path self.loadAnims(anims, 'body') self.generateHealthBar() self.generatePropeller() else: if self.variant == Variant.SKELETON or self.variant == Variant.ZOMBIE: self.loadModel( 'phase_5/models/char/cog%s_robot-lose-mod.bam' % str(self.suit), 'body') else: self.loadModel( 'phase_4/models/char/suit%s-lose-mod.bam' % str(self.suit), 'body') self.loadAnims( { 'lose': 'phase_4/models/char/suit%s-lose.bam' % str(self.suit) }, 'body') if self.variant != Variant.SKELETON: self.headModel = self.head.generate() self.headModel.reparentTo(self.find('**/joint_head')) if self.suitPlan.getName() == SuitGlobals.VicePresident: self.headModel.setScale(0.35) self.headModel.setHpr(270, 0, 270) self.headModel.setZ(-0.1) self.headModel.loop('neutral') self.setClothes() self.setAvatarScale(self.suitPlan.getScale() / SuitGlobals.scaleFactors[self.suit]) self.setHeight(self.suitPlan.getHeight()) self.setupNameTag() Avatar.initShadow(self)
def __init__(self, cr): try: self.DistributedAvatar_initialized return except: self.DistributedAvatar_initialized = 1 Avatar.__init__(self) DistributedActor.__init__(self, cr) self.health = 0 self.maxHealth = 0 self.healthLabel = None self.healthLabelTrack = None self.place = 0 self.hood = None return
def __init__(self): Avatar.__init__(self) self.name = None self.dept = None self.suit = None self.head = None self.headModel = None self.variant = None self.handColor = None self.voice = None self.chat = None self.chatDial = None self.shadow = None self.propeller = None self.smallExp = None self.largeExp = None self.explosion = None self.hasSpawned = False self.suitTrack = None self.timestampAnimTrack = None self.propellerSounds = {} self.healthBar = None self.healthBarGlow = None self.condition = 0 self.avatarType = CIGlobals.Suit self.suitPlan = None self.animFSM = ClassicFSM('Suit', [ State('off', self.enterOff, self.exitOff), State('neutral', self.enterNeutral, self.exitNeutral), State('walk', self.enterWalk, self.exitWalk), State('die', self.enterDie, self.exitDie), State('win', self.enterWin, self.exitWin), State('attack', self.enterAttack, self.exitAttack), State('flail', self.enterFlail, self.exitFlail), State('flyDown', self.enterFlyDown, self.exitFlyDown), State('flyAway', self.enterFlyAway, self.exitFlyAway), State('flyNeutral', self.enterFlyNeutral, self.exitFlyNeutral), State('trayWalk', self.enterTrayWalk, self.exitTrayWalk), State('trayNeutral', self.enterTrayNeutral, self.exitTrayNeutral) ], 'off', 'off') self.animFSM.enterInitialState() self.initializeBodyCollisions() return
def __init__(self): Avatar.__init__(self) self.fsm = ClassicFSM('VicePresident', [ State('off', self.enterOff, self.exitOff), State('throwGear', self.enterThrowGear, self.exitThrowGear), State('neutral', self.enterNeutral, self.exitNeutral), State('jump', self.enterJump, self.exitJump), State('emerge', self.enterEmerge, self.exitEmerge), State('knockDown', self.enterKnockDown, self.exitKnockDown), State('riseUp', self.enterRiseUp, self.exitRiseUp) ], 'off', 'off') self.fsm.enterInitialState() self.track = None self.treads = None self.rearDoor = None self.frontDoor = None self.gearModel = None self.gearThrowIval = None self.knockedDown = False self.chirps = base.audio3d.loadSfx("phase_4/audio/sfx/SZ_TC_bird1.mp3") base.audio3d.attachSoundToObject(self.chirps, self) self.vp_torso_node = NodePath('vp_torso_node')
def setName(self, nameString, charName): Avatar.setName(self, nameString, avatarType=self.avatarType, charName=charName, createNow=1)
def setChat(self, chat): Avatar.setChat(self, chat)
def setName(self, name): Avatar.setName(self, name)
def delete(self): Avatar.delete(self) self.cleanup()
def initializeLocalCollisions(self, name): self.notify.info('Initializing Local Collisions!') Avatar.initializeLocalCollisions(self, 1, 3, name)
def initializeBodyCollisions(self): self.notify.info('Initializing Body Collisions!') Avatar.initializeBodyCollisions(self, self.avatarType, 6, 2) self.initializeRay(self.avatarType, 2)