def incrementScore(self, value, textPosition, textGroup): if self.comboBonus and value <= 250: self.comboBonus += int(.2 * FRAMES_PER_SECOND) self.comboKills += 1 tempImage = text.Text(FONT_PATH, 30, FONT_COLOR, "x" + str(self.comboKills) + "!").image helpBubble = infoBubble.infoBubble(tempImage, self,0.5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.bulletGroup.add(helpBubble) if self.pointBonus: value *= 2 tempText = text.Text(FONT_PATH, 36, FONT_COLOR, str(value), 15) tempText.setAlign(CENTER_MIDDLE) tempText.position = vector.vector2d(textPosition) textGroup.add(tempText) self.score += value self.scoreBoard.setText(self.score) if self.score >= self.nextBonus: utility.playSound(self.extraLifeSound, OW_CHANNEL) tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Extra Life!").image helpBubble = infoBubble.infoBubble(tempImage, self,1.5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) textGroup.add(helpBubble) self.lives += 1 self.lifeBoard.setText('x' + str(self.lives)) self.nextBonus += 50000
def die(self): if self.dying == 0: deathType = int(random.random() * 3) #print deathType if deathType == 0: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Blast!").image utility.playSound(self.deathSound[0], OW_CHANNEL) elif deathType == 1: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Oh No!").image utility.playSound(self.deathSound[1], OW_CHANNEL) elif deathType == 2: tempImage = text.TextSurface(FONT_PATH, 30,FONT_COLOR, "Bother!").image utility.playSound(self.deathSound[2], OW_CHANNEL) self.animationList.play("Die") self.bounds = [-1000, -1000, SCREEN_WIDTH + 1000, SCREEN_HEIGHT + 32] self.boundStyle = BOUND_STYLE_CUSTOM helpBubble = infoBubble.infoBubble(tempImage, self, 5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.bulletGroup.add(helpBubble) self.dying += 1 if settingList[PARTICLES] and not self.dying % 2: puffsToCreate = 4 while puffsToCreate: puffsToCreate -= 1 tempPuff = particle.smokeParticle(self.position, [1,0]) tempPuff.velocity.setAngle(359 * random.random()) self.effectsGroup.add(tempPuff)
def actorUpdate(self): utility.playMusic(self.music, True) self.placeEye() if self.lifeTimer <= 30 * FRAMES_PER_SECOND and self.health == self.world.level+ 2: if self.lifeTimer == 30 * FRAMES_PER_SECOND: tempImage = self.howToKill helpBubble = infoBubble.infoBubble(tempImage, self.target,5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.textGroup.add(helpBubble) self.lifeTimer += 1 if not self.active and self.health > 0: self.active = True if self.active: if self.stunned: if self.charging: self.speed -= 0.2 if self.speed <= 1.75: self.speed = 1.75 self.charging = False self.timeUntilCharge = 6 * FRAMES_PER_SECOND self.velocity.makeNormal() self.velocity *= self.speed self.currentSequence = 1 self.stunned -= 1 if not self.stunned: self.textGroup.add(self.eye) self.animationList.play("idle") if not self.stunned % 4: puffsToCreate = 4 while puffsToCreate and settingList[PARTICLES]: puffsToCreate -= 1 tempPuff = particle.smokeParticle(self.position, [1,0]) tempPuff.velocity.setAngle(359 * random.random()) self.effectsGroup.add(tempPuff) else: self.currentSequence = 0 self.processAI() if self.health <= 0: self.active = False self.die() if not self.gaveBonus: self.world.giveBonus() self.gaveBonus = True
def actorUpdate(self): if self.lives <= 0: self.active = False self.velocity -= vector.vector2d(0.0,-0.3) self.die() return if not self.damageBonus: self.bulletDamage = 1 if not self.reflectBonus: self.bulletBoundStyle = BOUND_STYLE_KILL self.bulletCollideStyle = COLLIDE_STYLE_HURT if not self.fastShot: self.resetFireTimer = self.defaultFireTimer if self.pointBonus: self.pointBonus -= 1 if self.damageBonus: self.damageBonus -= 1 if self.reflectBonus: self.reflectBonus -= 1 if self.duelShot: self.duelShot -= 1 if self.stunTimer: self.stunTimer -= 1 if self.fastShot: self.fastShot -= 1 if self.comboBonus: self.comboBonus -= 1 if not self.comboBonus: comboCounter = 0 bonusPoints = 0 while comboCounter <= self.comboKills: comboCounter += 1 bonusPoints += comboCounter * 25 self.incrementScoreNoText(bonusPoints) tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Combo Points:" + str(bonusPoints) + "!").image helpBubble = infoBubble.infoBubble(tempImage, self,1.5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.bulletGroup.add(helpBubble) self.comboKills = 0 self.fireTimer -= 1 self.velocity *= .95 if not self.active: self.active = True if not self.fireTimer: self.animationList.stop("Idle", self.animationList.currentFrame) if self.stunTimer: self.animationList.play("HurtIdle", self.animationList.currentFrame)
def die(self): if self.objectCollidedWith.actorType == ACTOR_PLAYER: self.objectCollidedWith.comboBonus += 5 * FRAMES_PER_SECOND tempImage = text.Text(FONT_PATH, 30, FONT_COLOR, "Combo Time!", 1).image helpBubble = infoBubble.infoBubble(tempImage, self.objectCollidedWith, 1.5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.textGroup.add(helpBubble) self.active = False self.kill() del self
def actorUpdate(self): if not self.stunned: try: self.emitter.update() except: pass utility.playMusic(self.music, True) if not self.active and self.health > 0: self.active = True if self.lifeTimer <= 30 * FRAMES_PER_SECOND and self.health == self.world.level + 2: if self.lifeTimer == 30 * FRAMES_PER_SECOND: tempImage = self.howToKill helpBubble = infoBubble.infoBubble(tempImage, self.target,5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.textGroup.add(helpBubble) self.lifeTimer += 1 if self.active: if self.stunned: self.stunned -= 1 if not self.stunned % 4: puffsToCreate = 4 while puffsToCreate and settingList[PARTICLES]: puffsToCreate -= 1 tempPuff = particle.smokeParticle(self.position, [1,0]) tempPuff.velocity.setAngle(359 * random.random()) self.effectsGroup.add(tempPuff) if not self.stunned: self.animationList.play("idle") else: self.currentSequence = 0 self.processAI() if self.health <= 0: self.active = False self.die() if not self.gaveBonus and self.world.worldName != "Tutorial": self.world.giveBonus() self.gaveBonus = True
def incrementScoreNoText(self,value): self.score += value self.scoreBoard.setText(self.score) if self.score > self.nextBonus: utility.playSound(self.extraLifeSound, OW_CHANNEL) tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Extra Life!").image helpBubble = infoBubble.infoBubble(tempImage, self,1.5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.effectsGroup.add(helpBubble) self.lives += 1 self.lifeBoard.setText('x' + str(self.lives)) self.nextBonus += 50000
def actorUpdate(self): utility.playMusic(self.music, True) if not self.active and self.health > 0: self.active = True if self.lifeTimer <= 30 * FRAMES_PER_SECOND and self.health == (self.world.level + 1) * 25: if self.lifeTimer == 30 * FRAMES_PER_SECOND: tempImage = self.howToKill helpBubble = infoBubble.infoBubble(tempImage, self.target,5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.textGroup.add(helpBubble) self.lifeTimer += 1 if self.active: if self.stunned: if self.charging: self.speed -= 0.2 if self.speed <= 1.75: self.speed = 1.75 self.charging = False self.timeUntilCharge = 10 * FRAMES_PER_SECOND self.velocity.makeNormal() self.velocity *= self.speed self.stunned -= 1 self.animationList.play("vulnerable") if not self.stunned: utility.playSound(self.shieldRestore, PICKUP_CHANNEL) self.animationList.play("idle") else: self.currentSequence = 0 self.processAI() if self.health <= 0: self.active = False self.die() if not self.gaveBonus: self.world.giveBonus() self.gaveBonus = True
def displayText(self): tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Double Damage!").image helpBubble = infoBubble.infoBubble(tempImage, self.objectCollidedWith,1.5 * FRAMES_PER_SECOND) helpBubble.offSet = vector.vector2d(0.0, -100.0) self.textGroup.add(helpBubble)
def update(self): if self.bossDead: self.timeAfterBoss += 1 if self.defaultSpawnRate: if not self.moonoSpawnRate: self.moonoSpawnRate = self.defaultSpawnRate self.spawnMoono() self.moonoSpawnRate -= 1 if self.newMoono.health <= 0: self.moonoDead = True if self.currentStep == 0: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Welcome to the tutorial!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.currentStep += 1 self.timer = 0 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 1: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Use your mouse to move.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 5 * FRAMES_PER_SECOND and self.currentStep == 2: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Notice the stars that you shoot?").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 3: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "When moving you shoot stars.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 4: self.spawnMoono("balloon") tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Oh no! Its a Moono!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 5: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Attack with your stars!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 6: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Moonos hurt you when they touch you.").image self.timer -= 1 self.moonoDead = False helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 7: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Did you get the Balloon?").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 8: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Collect balloons for bonus points!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 9: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Balloons always help you get more points.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 10: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Points are important!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 11: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Every 50,000 points you get an extra life!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 12: self.spawnBaake() tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Oh bother! It's Baake.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 13: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Baakes don't hurt you...").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 14: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "...but they do love to get in the way!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 15: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Its usually best to stay away from Baake.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 16: self.spawnMoono("reflect") tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Blast, another Moono!").image self.moonoDead = False self.timer-= 1 helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 17: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Did you pickup that powerup gem?").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 18: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Gems change how you attack.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 19: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "These effects don't last long...").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 20: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "...but they do stack!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 21: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "So pick up as many as you can!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 22: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "It is important to make use of gems").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 23: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "They can really help you out!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 24: self.defaultSpawnRate = 2.5 * FRAMES_PER_SECOND self.massAttack = True self.timer = 0 self.currentStep +=1 if self.currentStep == 25: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "They're attacking en masse!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 26: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Try moving slowly towards them.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 27: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "You can better control your shots.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 28: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "This can really increase your chances!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,3 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 4 * FRAMES_PER_SECOND and self.currentStep == 29: self.spawnBoss() self.bossFight = True tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Oh no! Its a boss!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 30: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Kill the moonos that spawn.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer >= 3 * FRAMES_PER_SECOND and self.currentStep == 31: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Some of them will drop a nova.").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer == 3 * FRAMES_PER_SECOND and self.currentStep == 32: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Use the nova when the boss is near").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timer == 3 * FRAMES_PER_SECOND and self.currentStep == 33: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Only novas can hurt bosses!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) self.timer = 0 self.currentStep +=1 if self.timeAfterBoss == 1 * FRAMES_PER_SECOND: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Congratulations!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) if self.timeAfterBoss == 3 * FRAMES_PER_SECOND: tempImage = text.TextSurface(FONT_PATH, 30, FONT_COLOR, "Looks like you're ready for a real challenge!").image helpBubble = infoBubble.infoBubble(tempImage, self.player,2 * FRAMES_PER_SECOND) helpBubble.setOffSet(vector.vector2d(0.0,-100.0)) self.textGroup.add(helpBubble) if (self.moonoDead or self.massAttack): self.timer += 1 if self.timeAfterBoss == 5 * FRAMES_PER_SECOND: utility.fadeMusic() return True