def __init__(self, bladder): Sprite.__init__(self) self.bladder = bladder self.topBottomSpacing = 40 self.composeTimeout = 100 self.squeezeImgs = [ load_png('squeeze_violet.png'), load_png('squeeze_blue.png'), load_png('squeeze_green.png'), load_png('squeeze_yellow.png'), load_png('squeeze_orange.png'), load_png('squeeze_red.png'), ] self.arrowTop = load_png('squeeze_arrow_top.png') self.arrowBot = load_png('squeeze_arrow_bot.png') self.image = self.squeezeImgs[0] self.rect = self.image.get_rect() self.arrowTopRect = self.arrowTop.get_rect() self.arrowBotRect = self.arrowBot.get_rect() self.ComposeImg() controller = mvcState.GetController() controller.mouseListeners.append(self)
def __init__(self): Sprite.__init__(self) Heater.__init__(self) self.temperature = 300 self.hiTempLimit = 300 self.lowTempLimit = 20 self.isActive = False self.hasMouseFocus = False self.isClicking = False self.offImg = load_png('fire_off.png') self.onImg = load_png('fire_on.png') self.focusImg = load_png('fire_focus.png') self.outImg = load_png('fire_out.png') self.matchImg = load_png('fire_match_off.png') self.matchFocusImg = load_png('fire_match_focus.png') self.image = self.offImg self.rect = self.image.get_rect() self.cursorComposer = CursorComposer([5, 70], [70, 70]) self.cursorComposer.BeginLoopCallback = self.BeginCursorLoop self.cursorComposer.EndLoopCallback = self.EndCursorLoop self.isExtinguished = False self.isBuyingMatch = False self.timeSinceStarted = 0 self.strikeTimeCounter = 0 self.fullStrikeTime = 0 self.fireStrikeLimit = settings.fireStrikeLimit controller = mvcState.GetController() controller.mouseListeners.append(self) controller.gameEventListeners.append(self) controller.GameEvent('HeaterBirth', self)
def Kill( self ): controller = mvcState.GetController() controller.gameEventListeners.remove( self ) for s in self.viewOnlyGroup.sprites(): s.kill() for s in self.bubbleGroup.sprites(): s.kill()
def __init__(self, amount, showDollar=False): Sprite.__init__(self) self.amount = amount self.capacity = 9999 self.showDollar = showDollar self.dollarImg = load_png('alpha_dollar.png') self.imgNums = [ load_png('alpha_0.png'), load_png('alpha_1.png'), load_png('alpha_2.png'), load_png('alpha_3.png'), load_png('alpha_4.png'), load_png('alpha_5.png'), load_png('alpha_6.png'), load_png('alpha_7.png'), load_png('alpha_8.png'), load_png('alpha_9.png'), ] self.image = self.dollarImg.convert_alpha() #copy it self.rect = self.image.get_rect() self.ComposeImg() self.dirty = 1 controller = mvcState.GetController() controller.gameEventListeners.append(self)
def OnBoughtWaterWheelRepair(self): self.timeSinceStarted = 0 self.isBuyingRepair = False self.temperature = settings.waterWheelTemperature controller = mvcState.GetController() controller.GameEvent('WaterWheelRepaired')
def __init__(self): Sprite.__init__(self) self.fillingImgs = [ load_png('bladder00.png'), load_png('bladder01.png'), load_png('bladder02.png'), load_png('bladder03.png'), load_png('bladder04.png'), ] self.tooFullImg = load_png('bladder_toofull.png') self.ventImg = self.tooFullImg self.shootImg = load_png('bladder_shoot.png') self.image = self.fillingImgs[0] self.rect = self.image.get_rect() self.originalMidBottom = self.rect.midbottom self.dirty = 1 self.capacity = settings.bladderCapacity self.numBubbles = 0 self.isShooting = False self.isVenting = False self.overCapacityCounter = 0 self.tooFullAnimCounter = 0 self.squeezeFactor = 0 self.maxPower = settings.bladderMaxPower self.tooFullAnim = [(2, 0), (-2, 0)] self.tooFullAnimIndex = 0 controller = mvcState.GetController() controller.gameEventListeners.append(self) controller.mouseListeners.append(self)
def update(self, timeChange): self.birthTimeCounter += timeChange if self.birthTimeCounter > settings.bubbleFormingTime \ and self.image == self.formingImg: self.Rise() elif self.image == self.risingImg and not self.isAtCeiling: self.rect.y = self.rect.y - 1 if self.rect.top < self.ceilingY: controller = mvcState.GetController() controller.GameEvent("BubbleHitCeiling") self.isAtCeiling = True self.rect.top = self.ceilingY self.deathCounter = self.birthTimeCounter + \ settings.bubbleCeilingTime if self.birthTimeCounter > self.nextJiggleCounter: self.rect.x += rng.randint(-1, 1) self.nextJiggleCounter += 500 if self.isAtCeiling \ and self.birthTimeCounter > self.deathCounter: #log.debug( 'killing bubble' ) self.kill()
def BeginAcceleration(self): self.isAccelerated = True self.timeSinceAccelerated = 0 self.temperature = settings.waterWheelAcceleratedTemperature controller = mvcState.GetController() controller.GameEvent('WaterWheelAccelerated')
def Quit( self ): #print 'mm quitting' newModel = self.nextModelClass() mvcState.SetModel( newModel ) controller = mvcState.GetController() controller.gameEventListeners.remove( self )
def __init__(self, colorName): self.amount = 0 self.capacity = settings.purseCapacity self.colorName = colorName controller = mvcState.GetController() controller.gameEventListeners.append(self)
def __init__(self): Sprite.__init__(self) Heater.__init__(self) self.temperature = 0 self.isActive = False self.hasMouseFocus = False self.isClicking = False self.isSpinning = False self.timeSinceStartSpinning = 0 self.timeSinceStopSpinning = 0 self.timeUntilNextGust = rng.randint(settings.windGustTimeMin, settings.windGustTimeMax) self.spinDuration = 0 self.lastAnimFrameTime = 0 self.lastAnimFrameIndex = 0 self.offImg = load_png('wind_off.png') self.onImg = load_png('wind00.png') self.focusImg = load_png('wind_focus.png') self.image = self.offImg self.rect = self.image.get_rect() self.spiningImgs = [ load_png('wind00.png'), load_png('wind01.png'), load_png('wind02.png'), ] controller = mvcState.GetController() controller.mouseListeners.append(self) controller.GameEvent('HeaterBirth', self)
def OnBoughtNukeFuel(self): self.timeSinceStarted = 0 self.isBuyingFuel = False self.temperature = settings.nukeTemperature controller = mvcState.GetController() controller.GameEvent('NukeFueled')
def Click(self): if not self.isActive: BuyableHeater.Click(self, 'BoughtNuke') return if self.isBuyingFuel: controller = mvcState.GetController() controller.GameEvent('NukeFuelRequest')
def Kindle(self): self.isExtinguished = False self.temperature = 300 self.timeSinceStarted = 0 self.fullStrikeTime = 0 controller = mvcState.GetController() controller.GameEvent('FireKindle')
def Start( self ): controller = mvcState.GetController() controller.mouseListeners.append( self.freestyleButton ) controller.mouseListeners.append( self.freestyleTrickyButton ) controller.mouseListeners.append( self.speedyButton ) controller.mouseListeners.append( self.firehoseButton ) controller.mouseListeners.append( self.sharpshooterButton ) controller.mouseListeners.append( self.debugButton ) mvcState.GetView().ModelStarted(self)
def OnWin( self, time, money ): #log.debug( "FMODEL GOT WIIIIIIIIIIIIIIIIIIIIIN" ) controller = mvcState.GetController() controller.gameEventListeners.remove( self ) for s in self.objects.sprites(): s.kill() mvcState.SetModel( WinScreenModel( time, money ) )
def Quit( self ): controller = mvcState.GetController() controller.gameEventListeners.remove( self ) for s in self.objects.sprites(): s.kill() #log.debug( "SETTING MM FLAG" ) mvcState.SetModel( MainMenuFlag() )
def update(self, timeChange): bucketY = 330 self.rect.move_ip(0, 4) if self.rect.bottom >= bucketY: controller = mvcState.GetController() controller.GameEvent('DropHitsBucket', self.colorName) self.kill()
def OnStripeHitMaxOpacity(self, stripe): self.finishedStripes.add( stripe ) #print self.finishedStripes #print [s.name for s in self.finishedStripes] if len(self.finishedStripes) == 6: controller = mvcState.GetController() log.debug( "WIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIN" ) log.debug( str((self.time, self.playerMoney.amount ) ) ) controller.GameEvent( "Win", self.time, self.playerMoney.amount )
def __init__(self, colName, startPos): Sprite.__init__(self) self.colorName = colName self.image = load_png('drop_' + self.colorName + '.png') self.rect = self.image.get_rect() self.rect.midtop = startPos controller = mvcState.GetController() controller.GameEvent('DropBirth', self)
def Drip(self): self.rect.move_ip(self.dripMoves[self.dripIndex]) self.dripIndex += 1 self.dripIndex %= len(self.dripMoves) if self.dripIndex == 7: controller = mvcState.GetController() controller.GameEvent('LaunchDrop', self.rect.center, self.dropColor) if self.dripIndex == 0: self.isDripping = False
def OnMouseDown(self, pos): if not self.rect.collidepoint(pos): return if self.numBubbles < 1: return self.squeezeFactor = 0 self.isShooting = True controller = mvcState.GetController() controller.GameEvent('BladderShootStart') self.dirty = 1
def OnDropHitsBucket(self, colorName): if colorName != self.colorName: return self.amount += settings.purseIncrement #log.debug( 'drop hit the bucket'+ colorName ) controller = mvcState.GetController() if self.amount == self.capacity: controller.GameEvent("PurseFull", colorName) elif self.amount > self.capacity: controller.GameEvent("DropOverCapacity", colorName) self.amount = self.capacity
def OpacityChange(self, change): #log.debug( self.name + 'stripe changes opacity'+ str(change) +str(self._opacity) ) controller = mvcState.GetController() self._opacity += change if self._opacity >= self.hiOpacityLimit: self._opacity = self.hiOpacityLimit self.shouldLeak = False controller.GameEvent('StripeHitMaxOpacity', self) if self._opacity < self.lowOpacityLimit: self._opacity = self.lowOpacityLimit if self._opacity > self.bonusOpacityLimit: controller.GameEvent('StripeAtBonusOpacity', self) self.dirty = 1
def Quit( self ): #print 'mm quitting' controller = mvcState.GetController() controller.mouseListeners.remove( self.freestyleButton ) controller.mouseListeners.remove( self.freestyleTrickyButton ) controller.mouseListeners.remove( self.speedyButton ) controller.mouseListeners.remove( self.firehoseButton ) controller.mouseListeners.remove( self.sharpshooterButton ) controller.mouseListeners.remove( self.debugButton ) if not self.nextModelClass: self.nextModelClass = SystemQuitFlag newModel = self.nextModelClass() mvcState.SetModel( newModel )
def __init__(self): Sprite.__init__(self) self.onImg = load_png('quit_btn.png') self.focusImg = load_png('quit_btn_focus.png') self.image = self.onImg self.rect = self.image.get_rect() self.isClicking = False self.hasMouseFocus = False controller = mvcState.GetController() controller.mouseListeners.append(self)
def __init__(self): Sprite.__init__(self) Heater.__init__(self) self.temperature = 0 self.isActive = False self.hasMouseFocus = False self.isClicking = False self.isBuyingFuel = True self.amountUsedFuel = 0 self.usedFuelCapacity = 5 self.timeSinceStarted = 0 self.offImg = load_png('nuke_off.png') self.onImgs = [ load_png('nuke_on01.png'), load_png('nuke_on02.png'), load_png('nuke_on03.png'), load_png('nuke_on04.png'), load_png('nuke_on05.png'), ] self.onImg = load_png('nuke_on.png') self.focusImg = load_png('nuke_focus.png') self.fullImg = load_png('nuke_full.png') self.fuelImgs = [ load_png('nuke_fuel01.png'), load_png('nuke_fuel02.png'), load_png('nuke_fuel03.png'), load_png('nuke_fuel04.png'), load_png('nuke_fuel05.png'), ] self.fuelImg = load_png('nuke_fuel.png') self.fuelFocusImgs = [ load_png('nuke_fuel_focus01.png'), load_png('nuke_fuel_focus02.png'), load_png('nuke_fuel_focus03.png'), load_png('nuke_fuel_focus04.png'), load_png('nuke_fuel_focus05.png'), ] self.fuelFocusImg = load_png('nuke_fuel_focus.png') self.image = self.offImg self.rect = self.image.get_rect() controller = mvcState.GetController() controller.mouseListeners.append(self) controller.gameEventListeners.append(self) controller.GameEvent('HeaterBirth', self)
def __init__(self): controller = mvcState.GetController() controller.gameEventListeners.append(self) self.timeSinceSound = 0 self.shootSounds = [ load_sound('geyser00.ogg'), load_sound('geyser01.ogg'), ] self.ventSounds = [ load_sound('geyser02.ogg'), load_sound('geyser03.ogg'), ] self.chaChing = load_sound('chaching.ogg') self.win = load_sound('win.ogg')
def __init__( self, screen, display ): self.screen = screen self.screenRect = screen.get_rect() self.display = display self.model = None self.currentTime = 0 self.bgImage = load_png( 'bg_game.png' ) self.hiGroup = RenderUpdates() self.lowGroup = RenderUpdates() self.viewOnlyGroup = RenderUpdates() self.bubbleGroup = RenderUpdates() self.ins_spin = None self.ins_press = None self.quitButton = None self.squeezePrompt = None self.groups = [self.lowGroup, self.bubbleGroup, self.hiGroup, self.viewOnlyGroup] self.locks = [] self.stripeOrder = ['violet','blue','green', 'yellow','orange','red'] self.stripeHeights = { 'violet': 233, 'blue': 189, 'green': 136, 'yellow': 85, 'orange': 44, 'red': 11, } self.heaterRects = { 'green': Rect ( 160, 470, 80, 100 ), 'blue': Rect ( 265, 470, 80, 100 ), 'violet': Rect ( 370, 470, 80, 100 ), 'red': Rect ( 475, 470, 80, 100 ), 'orange': Rect ( 580, 470, 80, 100 ), 'yellow': Rect ( 685, 470, 80, 100 ), } self.purseStatusbars = [] controller = mvcState.GetController() controller.gameEventListeners.append( self )
def __init__(self): Sprite.__init__(self) Heater.__init__(self) self.temperature = 81 self.isActive = False self.hasMouseFocus = False self.isClicking = False self.offImg = load_png('solar_off.png') self.onImg = load_png('solar_on.png') self.focusImg = load_png('solar_focus.png') self.image = self.offImg self.rect = self.image.get_rect() controller = mvcState.GetController() controller.mouseListeners.append(self) controller.GameEvent('HeaterBirth', self)