Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
	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()
Beispiel #4
0
    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)
Beispiel #5
0
    def OnBoughtWaterWheelRepair(self):
        self.timeSinceStarted = 0
        self.isBuyingRepair = False
        self.temperature = settings.waterWheelTemperature

        controller = mvcState.GetController()
        controller.GameEvent('WaterWheelRepaired')
Beispiel #6
0
    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)
Beispiel #7
0
    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()
Beispiel #8
0
    def BeginAcceleration(self):
        self.isAccelerated = True
        self.timeSinceAccelerated = 0
        self.temperature = settings.waterWheelAcceleratedTemperature

        controller = mvcState.GetController()
        controller.GameEvent('WaterWheelAccelerated')
Beispiel #9
0
	def Quit( self ):
		#print 'mm quitting'
		newModel = self.nextModelClass()
		mvcState.SetModel( newModel )

		controller = mvcState.GetController()
		controller.gameEventListeners.remove( self )
Beispiel #10
0
    def __init__(self, colorName):
        self.amount = 0
        self.capacity = settings.purseCapacity
        self.colorName = colorName

        controller = mvcState.GetController()
        controller.gameEventListeners.append(self)
Beispiel #11
0
    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)
Beispiel #12
0
    def OnBoughtNukeFuel(self):
        self.timeSinceStarted = 0
        self.isBuyingFuel = False
        self.temperature = settings.nukeTemperature

        controller = mvcState.GetController()
        controller.GameEvent('NukeFueled')
Beispiel #13
0
    def Click(self):
        if not self.isActive:
            BuyableHeater.Click(self, 'BoughtNuke')
            return

        if self.isBuyingFuel:
            controller = mvcState.GetController()
            controller.GameEvent('NukeFuelRequest')
Beispiel #14
0
    def Kindle(self):
        self.isExtinguished = False
        self.temperature = 300
        self.timeSinceStarted = 0
        self.fullStrikeTime = 0

        controller = mvcState.GetController()
        controller.GameEvent('FireKindle')
Beispiel #15
0
	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)
Beispiel #16
0
	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 ) )
Beispiel #17
0
	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() )
Beispiel #18
0
    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()
Beispiel #19
0
	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 )
Beispiel #20
0
    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)
Beispiel #21
0
 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
Beispiel #22
0
 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
Beispiel #23
0
    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
Beispiel #24
0
 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
Beispiel #25
0
	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 )
Beispiel #26
0
    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)
Beispiel #27
0
    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)
Beispiel #28
0
    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')
Beispiel #29
0
	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 )
Beispiel #30
0
    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)