Ejemplo n.º 1
0
 def party_started(self):
     # Turn the music on
     self.music_on("music_party")
     # Show the current party mode activated
     background = dmd.FrameLayer(
         opaque=True, frame=self.game.assets.dmd_starsBorder.frames[0])
     textLayer1 = ep.EP_TextLayer(64,
                                  1,
                                  self.game.assets.font_7px_bold_az,
                                  "center",
                                  opaque=False).set_text("PARTY MODE START",
                                                         color=ep.MAGENTA)
     self.ptextLayer2 = ep.EP_TextLayer(64,
                                        12,
                                        self.game.assets.font_10px_AZ,
                                        "center",
                                        opaque=False).set_text(
                                            self.game.party_setting.upper(),
                                            color=ep.YELLOW)
     instructions = dmd.TextLayer(
         64, 23, self.game.assets.font_5px_AZ,
         "center").set_text("HOLD L. FLIPPER TO CONFIRM")
     instructions2 = dmd.TextLayer(
         64, 23, self.game.assets.font_5px_AZ,
         "center").set_text("HOLD R. FLIPPER TO DISABLE")
     script = []
     script.append({'seconds': 2, 'layer': instructions})
     script.append({'seconds': 2, 'layer': instructions2})
     instruction_duo = dmd.ScriptedLayer(128, 32, script)
     instruction_duo.composite_op = "blacksrc"
     self.layer = dmd.GroupedLayer(
         128, 32,
         [background, textLayer1, self.ptextLayer2, instruction_duo])
     # start a bail delay
     self.reset_party_timeout()
Ejemplo n.º 2
0
    def __init__(self,game,priority):
        super(BankRobbery, self).__init__(game,priority)
        self.myID = "Bank Robbery"
        self.position = [-49,-4,43]
        self.y_pos = 7
        self.isActive = [True,True,True]
        self.shots = [self.game.left_ramp,self.game.center_ramp,self.game.right_ramp]
        self.won = False
        self.flashers = [self.game.coils.backLeftFlasher,self.game.coils.backRightFlasher,self.game.coils.middleRightFlasher]

        script = []
        # set up the text layer
        textString = "< SAVE POLLY PAUSED >"
        textLayer = ep.EP_TextLayer(128/2, 24, self.game.assets.font_6px_az_inverse, "center", opaque=False).set_text(textString,color=ep.PURPLE)
        script.append({'seconds':0.3,'layer':textLayer})
        # set up the alternating blank layer
        blank = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_blank.frames[0])
        blank.composite_op = "blacksrc"
        script.append({'seconds':0.3,'layer':blank})
        # make a script layer with the two
        self.pauseView = dmd.ScriptedLayer(128,32,script)
        self.pauseView.composite_op = "blacksrc"
        self.keys_index = {'start':list(range(len(self.game.sound.sounds[self.game.assets.quote_hatbIntro])))}
        self.counts_index = {'start':0}
        random.shuffle(self.keys_index['start'])
        self.valueMultiplier = 1 # shot value multiplier
Ejemplo n.º 3
0
    def __init__(self, game, priority):
        super(TAF_Tribute, self).__init__(game, priority)
        self.myID = "TAF Tribute"
        # switch value to raise if it gets hit
        self.bump = 25000
        # for timer halting in saloon/jets
        self.halted = False
        self.running = False

        script = []
        # set up the pause text layer
        textString = "< COUSIN IT PAUSED >"
        textLayer = ep.EP_TextLayer(128 / 2,
                                    24,
                                    self.game.assets.font_6px_az_inverse,
                                    "center",
                                    opaque=False).set_text(textString,
                                                           color=ep.GREEN)
        script.append({'seconds': 0.3, 'layer': textLayer})
        # set up the alternating blank layer
        blank = dmd.FrameLayer(opaque=False,
                               frame=self.game.assets.dmd_blank.frames[0])
        blank.composite_op = "blacksrc"
        script.append({'seconds': 0.3, 'layer': blank})
        # make a script layer with the two
        self.pauseView = dmd.ScriptedLayer(128, 32, script)
        self.pauseView.composite_op = "blacksrc"
        self.misses = [
            self.game.assets.dmd_tafItMiss1, self.game.assets.dmd_tafItMiss2
        ]
        self.mumbles = [
            self.game.assets.sfx_tafIt1, self.game.assets.sfx_tafIt2,
            self.game.assets.sfx_tafIt3, self.game.assets.sfx_tafIt4
        ]
Ejemplo n.º 4
0
 def drone_added_display(self, drone):
     # layer without the new drone
     layers_off = []
     layers_on = []
     for n in range(0, 4, 1):
         # if the drone is lit
         if self.drone_tracking[n]:
             # if it matches the one that just got added, its in the on list
             if n == drone:
                 layers_on.append(self.drone_layers[n])
             # otherwise it's in both
             else:
                 layers_on.append(self.drone_layers[n])
                 layers_off.append(self.drone_layers[n])
     self.text.set_text("DRONE ADDED")
     layers_off.append(self.text)
     layers_on.append(self.text)
     off = dmd.GroupedLayer(1920, 800, layers_off)
     on = dmd.GroupedLayer(1920, 800, layers_on)
     self.layer = dmd.ScriptedLayer(1920,
                                    800, [{
                                        'layer': off,
                                        'seconds': 0.2
                                    }, {
                                        'layer': on,
                                        'seconds': 0.2
                                    }],
                                    opaque=True)
     self.delay("clear", delay=2, handler=self.clear_layer)
     # play the quote for adding the drone
     self.game.sound.play_voice('drone_added',
                                action=procgame.sound.PLAY_FORCE)
Ejemplo n.º 5
0
 def shift_right(self):
     ## routine to slide the prize display to the right
     # blank script and a counter
     script = []
     count = 0
     for i in range(4, 20, 4):
         # math out the new origin based on the step
         setX = 126 + i
         # generate the new prize layer with the shifted origin and store it in a list spot
         prizeList = dmd.TextLayer(setX,
                                   1,
                                   self.game.assets.font_skillshot,
                                   "right",
                                   opaque=True).set_text(
                                       self.selectedPrizes)
         # combine with the lasso layer
         combined = dmd.GroupedLayer(128, 32,
                                     [prizeList, self.mask, self.lasso])
         # stick those mothers in a script list
         script.append({'seconds': 0.05, 'layer': combined})
         count += 1
     # delay 0.2 seconds before updating to the 'new' prize list at the post shifted position
     self.delay(delay=0.2, handler=self.update_layer)
     # put the scripted shift in place!
     self.layer = dmd.ScriptedLayer(128, 32, script)
Ejemplo n.º 6
0
    def switch_warning(self, switches):
        script = []
        switchCount = len(switches)
        # set up the text layer
        textString = "< CHECK SWITCHES >"
        textLayer = dmd.TextLayer(128 / 2,
                                  24,
                                  self.game.assets.font_6px_az_inverse,
                                  "center",
                                  opaque=False).set_text(textString)
        textLayer.composite_op = 'blacksrc'
        script.append({'seconds': 1.8, 'layer': textLayer})

        # then loop through the bad switches
        for i in range(0, switchCount, 1):
            name = switches[i]['switchName']
            count = switches[i]['count']
            textString = "< " + name + " >"
            textLayer = dmd.TextLayer(128 / 2,
                                      24,
                                      self.game.assets.font_6px_az_inverse,
                                      "center",
                                      opaque=False).set_text(textString)
            textLayer.composite_op = 'blacksrc'
            script.append({'seconds': 1.8, 'layer': textLayer})
        display = dmd.ScriptedLayer(128, 32, script)
        display.composite_op = "blacksrc"
        self.layer = display
Ejemplo n.º 7
0
    def __init__(self, game, priority):
        super(CV_Tribute, self).__init__(game, priority)
        self.myID = "CV Tribute"
        # for timer halting in saloon/jets
        self.halted = False
        self.running = False
        self.hitsToWin = 4

        script = []
        # set up the pause text layer
        textString = "< RINGMASTER PAUSED >"
        textLayer = ep.EP_TextLayer(128 / 2,
                                    24,
                                    self.game.assets.font_6px_az_inverse,
                                    "center",
                                    opaque=False).set_text(textString,
                                                           color=ep.GREEN)
        script.append({'seconds': 0.3, 'layer': textLayer})
        # set up the alternating blank layer
        blank = dmd.FrameLayer(opaque=False,
                               frame=self.game.assets.dmd_blank.frames[0])
        blank.composite_op = "blacksrc"
        script.append({'seconds': 0.3, 'layer': blank})
        # make a script layer with the two
        self.pauseView = dmd.ScriptedLayer(128, 32, script)
        self.pauseView.composite_op = "blacksrc"

        self.titleLine = ep.EP_TextLayer(
            64,
            1,
            self.game.assets.font_5px_bold_AZ_outline,
            "center",
            opaque=False)
        self.titleLine.composite_op = "blacksrc"
        self.titleLine.set_text("HIT THE RINGMASTER", color=ep.MAGENTA)
        self.leftTimerLine = ep.EP_TextLayer(
            0, 1, self.game.assets.font_5px_bold_AZ_outline, "left", False)
        self.leftTimerLine.composite_op = "blacksrc"
        self.rightTimerLine = ep.EP_TextLayer(
            128, 1, self.game.assets.font_5px_bold_AZ_outline, "right", False)
        self.rightTimerLine.composite_op = "blacksrc"
        self.scoreLine = ep.EP_TextLayer(64,
                                         7,
                                         self.game.assets.font_12px_az_outline,
                                         "center",
                                         opaque=False)
        self.scoreLine.composite_op = "blacksrc"
        self.infoLine = ep.EP_TextLayer(64,
                                        23,
                                        self.game.assets.font_7px_az,
                                        "center",
                                        opaque=False)
        self.infoLine.set_text("{{{{", color=ep.MAGENTA)
        self.infoLine.composite_op = "blacksrc"
        self.hitLayers = [
            self.game.assets.dmd_cvBurst1, self.game.assets.dmd_cvBurst2,
            self.game.assets.dmd_cvBurst3
        ]
Ejemplo n.º 8
0
    def intro_display(self,step=1):
        ## show some junk about how the mode works
        if step == 1:
            flippers = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_flippers1.frames[0])
            arrow = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_flippers1.frames[0])
        elif step == 2 or step == 4 or step == 6 or step == 8 or step == 10:
            flippers = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_flippers2.frames[0])
            arrowOne = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_rightArrow1.frames[0])
            arrowTwo = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_rightArrow2.frames[0])
            arrowThree = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_rightArrow3.frames[0])
            arrow = dmd.ScriptedLayer(128,32,[{'seconds':0.15,'layer':arrowOne},{'seconds':0.15,'layer':arrowTwo},{'seconds':0.15,'layer':arrowThree}])
            arrow.composite_op = "blacksrc"
        elif step == 3 or step == 5 or step == 7 or step == 9:
            flippers = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_flippers3.frames[0])
            arrowOne = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_leftArrow1.frames[0])
            arrowTwo = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_leftArrow2.frames[0])
            arrowThree = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_leftArrow3.frames[0])
            arrow = dmd.ScriptedLayer(128,32,[{'seconds':0.15,'layer':arrowOne},{'seconds':0.15,'layer':arrowTwo},{'seconds':0.15,'layer':arrowThree}])
            arrow.composite_op = "blacksrc"
        else:
            # just to make the syntax checking happy
            flippers = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_flippers1.frames[0])
            arrow = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_flippers1.frames[0])

        flippers.composite_op = "blacksrc"

        text = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_reverse.frames[0])

        if step == 2:
            self.game.base.play_quote(self.game.assets.quote_drunkNeverSeen)
        if step == 1:
            combined = dmd.GroupedLayer(128,32,[text,flippers])
        elif step == 2 or step == 3:
            combined = dmd.GroupedLayer(128,32,[text,flippers,arrow])
        else:
            combined = dmd.GroupedLayer(128,32,[self.underLayer,flippers,arrow])
        self.layer=combined
        if step <= 5:
            self.delay("Operational",delay=1,handler=self.intro_display,param=step+1)
        else:
            self.delay("Operational",delay=1,handler=self.get_going)
Ejemplo n.º 9
0
 def attract_display(self):
     # Banner for attract mode to alert that party mode is on
     script = []
     # set up the text layer
     textString = "< PARTY MODE ENABLED >"
     textLayer = ep.EP_TextLayer(64,
                                 0,
                                 self.game.assets.font_6px_az_inverse,
                                 "center",
                                 opaque=False).set_text(textString,
                                                        color=ep.MAGENTA)
     script.append({'seconds': 1.0, 'layer': textLayer})
     # set up the alternating blank layer
     blank = dmd.FrameLayer(opaque=False,
                            frame=self.game.assets.dmd_blank.frames[0])
     blank.composite_op = "blacksrc"
     script.append({'seconds': 0.5, 'layer': blank})
     # set up the type of mode text
     if self.game.party_setting == 'Flip Ct':
         textString1 = "< LIMITED FLIPS - " + self.game.user_settings[
             'Gameplay (Feature)']['Party - Flip Count'] + " >"
     elif self.game.party_setting == 'Drunk':
         textString1 = "< DRUNK - FLIPS REVERSED >"
     # newbie mode - both flippers all the time
     elif self.game.party_setting == 'Newbie':
         textString1 = "< NEWBIE - BOTH FLIP >"
     # lights out mode
     elif self.game.party_setting == 'Lights Out':
         textString1 = "< LIGHTS OUT >"
     # spiked beer
     elif self.game.party_setting == 'Spiked':
         textString1 = "< SPIKED - BEER TILTS >"
     # rectify
     elif self.game.party_setting == 'Rectify':
         textString1 = "< RECTIFY - NO DUB FLIP >"
     # last case is release to flip
     else:
         textString1 = "< RELEASE TO FLIP >"
     textLayer1 = ep.EP_TextLayer(64,
                                  0,
                                  self.game.assets.font_6px_az_inverse,
                                  "center",
                                  opaque=False).set_text(textString1,
                                                         color=ep.MAGENTA)
     script.append({'seconds': 1.0, 'layer': textLayer1})
     # and another blank
     script.append({'seconds': 0.5, 'layer': blank})
     # make a script layer with the two
     infoLine = dmd.ScriptedLayer(128, 32, script)
     infoLine.composite_op = "blacksrc"
     self.layer = infoLine
Ejemplo n.º 10
0
 def __init__(self,game):
     super(Jericho, self).__init__(game=game, priority=52,mode_type=AdvancedMode.Manual)
     self.myID = "Jericho"
     self.running = False
     ## Main display bits
     title = dmd.HDTextLayer(1920/2,10,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     title.set_text("JERICHO")
     shoot = dmd.HDTextLayer(1920/2,200,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     shoot.set_text("SHOOT")
     self.im_text_layer = dmd.HDTextLayer(1920/2,400,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     self.im_text_layer.set_text("IRONMAN TARGETS")
     self.wl_text_layer = dmd.HDTextLayer(1920/2,400,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     self.wl_text_layer.set_text("WHIPLASH")
     self.m_text_layer = dmd.HDTextLayer(1920/2,400,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     self.m_text_layer.set_text("IRON MONGER")
     self.wm_text_layer = dmd.HDTextLayer(1920/2,400,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     self.wm_text_layer.set_text("WAR MACHINE")
     self.b_text_layer = dmd.HDTextLayer(1920/2,400,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     self.b_text_layer.set_text("BOGEY RAMPS")
     self.s_text_layer = dmd.HDTextLayer(1920/2,400,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     self.s_text_layer.set_text("SHIELD LANES")
     self.info_lines = [self.im_text_layer,self.wl_text_layer,self.m_text_layer,self.wm_text_layer,self.b_text_layer,self.s_text_layer]
     script = [{'layer':self.im_text_layer,'seconds':2},
               {'layer':self.wl_text_layer,'seconds':2},
               {'layer':self.m_text_layer,'seconds':2},
               {'layer':self.wm_text_layer,'seconds':2},
               {'layer':self.b_text_layer,'seconds':2},
               {'layer':self.s_text_layer, 'seconds':2}]
     self.info_line_layer = dmd.ScriptedLayer(1920,800,script)
     self.shot_value_layer = dmd.HDTextLayer(1920/2,600,self.game.fonts['default'],"center",line_color=(0,0,0),line_width=4,interior_color=(192,192,192))
     self.main_display = dmd.GroupedLayer(1920,800,[title,shoot,self.info_line,self.shot_value_layer],opaque = True)
     # Intro display bits
     start_title = dmd.HDTextLayer(1920 / 2, 10, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=4,interior_color=(192, 192, 192))
     start_title.set_text("COMPLETE")
     start_for = dmd.HDTextLayer(1920 / 2, 400, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=4,interior_color=(192, 192, 192))
     start_for.set_text("FOR")
     start_points = dmd.HDTextLayer(1920 / 2, 600, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=4,interior_color=(192, 192, 192))
     start_points.set.text("1,000,000 + ")
     self.start_info = dmd.HDTextLayer(1920 / 2, 200, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=4,interior_color=(192, 192, 192))
     self.start_layer = dmd.GroupedLayer(1920,800,[start_title,start_for,start_points,self.start_info],opaque = True)
     start_strings = ["IRONMAN TARGETS", "WAR MACHINE", "WHIPLASH", "IRON MONGER", "BOGEY RAMPS", "SHIELD LANES"]
     # title display
     card_top = dmd.HDTextLayer(1920 / 2, 10, self.game.fonts['main_score'], "center", line_color=(0, 0, 0), line_width=4,interior_color=(192, 192, 192))
     card_top.set_text("JERICHO")
     card_bottom = dmd.HDTextLayer(1920 / 2, 400, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=4,interior_color=(192, 192, 192))
     card_bottom.set_text("MISSILE MAYHEM")
     self.title_card = dmd.GroupedLayer(1920,800,[card_top, card_bottom],opaque = True)
     # various hit displays - each needs a background?
     self.hit_score_layer = dmd.HDTextLayer(1920/2,200,self.game.fonts['main_score'],"center",line_color=(0,0,0),line_width=6,interior_color=(224,224,0))
     self.im_hit_layer = dmd.GroupedLayer(1920,800,[self.hit_score_layer],opaque = True)
Ejemplo n.º 11
0
 def mode_started(self):
     self.starting = False
     self.ending = False
     self.startValue = 200000
     self.showDub = False
     # reload the basemodes for switch help
     self.game.base.load_modes()
     # kill any extra balls
     self.game.set_tracking('extraBallsPending', 0)
     # kill the bozo ball if it was on
     self.game.set_tracking('bozoBall', False)
     self.running = True
     # set up the info layer
     infoLine1 = ep.EP_TextLayer(128 / 2,
                                 16,
                                 self.game.assets.font_5px_AZ,
                                 "center",
                                 opaque=False).set_text(
                                     "BEER MUG RAISES JACKPOTS",
                                     color=ep.YELLOW)
     infoLine2 = ep.EP_TextLayer(128 / 2,
                                 16,
                                 self.game.assets.font_5px_AZ,
                                 "center",
                                 opaque=False).set_text(
                                     "SALOON RESETS JACKPOTS",
                                     color=ep.ORANGE)
     infoLine3 = ep.EP_TextLayer(128 / 2,
                                 16,
                                 self.game.assets.font_5px_AZ,
                                 "center",
                                 opaque=False).set_text(
                                     "CENTER RAMP 2X WHEN LIT",
                                     color=ep.MAGENTA)
     self.infoLayer = dmd.ScriptedLayer(128, 32, [{
         'seconds': 2,
         'layer': infoLine1
     }, {
         'seconds': 2,
         'layer': infoLine2
     }, {
         'seconds': 2,
         'layer': infoLine3
     }])
     self.infoLayer.composite_op = "blacksrc"
     self.double = False
     # turn on the GI in case of a 3rd ball tilt
     self.game.gi_control("ON")
Ejemplo n.º 12
0
 def new_rack_pan(self):
     # turn the GI back on here
     self.game.gi_control("ON")
     # setup the pan script
     script =[]
     for i in range(0,-52,-1):
         showdownStill = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_townPan.frames[0])
         showdownStill.set_target_position(0,i)
         if i == -51:
             time = 1
         else:
             time = 0.015
         script.append({'seconds':time,'layer':showdownStill})
     showdownPan = dmd.ScriptedLayer(128,32,script)
     self.layer = showdownPan
     self.delay("Operational",delay=1.5,handler=self.new_rack_display)
Ejemplo n.º 13
0
 def display(self, step=1):
     # banner to announce is first
     if step == 1:
         textLine1 = ep.EP_TextLayer(64, 0,
                                     self.game.assets.font_12px_az_outline,
                                     "center")
         textLine2 = ep.EP_TextLayer(64, 15,
                                     self.game.assets.font_12px_az_outline,
                                     "center")
         textLine1.composite_op = "blacksrc"
         textLine2.composite_op = "blacksrc"
         textLine1.set_text("DOUBLE", color=ep.BLUE)
         textLine2.set_text("SCORING")
         combined1 = dmd.GroupedLayer(128, 32, [textLine1, textLine2])
         combined1.composite_op = "blacksrc"
         textLine3 = ep.EP_TextLayer(64, 0,
                                     self.game.assets.font_12px_az_outline,
                                     "center")
         textLine4 = ep.EP_TextLayer(64, 15,
                                     self.game.assets.font_12px_az_outline,
                                     "center")
         textLine3.composite_op = "blacksrc"
         textLine4.composite_op = "blacksrc"
         textLine3.set_text("DOUBLE")
         textLine4.set_text("SCORING", color=ep.BLUE)
         combined2 = dmd.GroupedLayer(128, 32, [textLine3, textLine4])
         combined2.composite_op = "blacksrc"
         finalproduct = dmd.ScriptedLayer(128, 32, [{
             'seconds': 0.2,
             'layer': combined1
         }, {
             'seconds': 0.2,
             'layer': combined2
         }])
         finalproduct.composite_op = "blacksrc"
         self.layer = finalproduct
         # Delay the change to the simple 2x bar
         self.delay("Operational", delay=2, handler=self.display, param=2)
     # step 2 puts up a smaller overlay to indicate 2x
     if step == 2:
         textLine1 = ep.EP_TextLayer(
             64, -1, self.game.assets.font_5px_bold_AZ_outline, "center")
         textLine1.composite_op = "blacksrc"
         textLine1.set_text(
             "2X                                              2X",
             color=ep.BLUE)
         self.layer = textLine1
Ejemplo n.º 14
0
    def __init__(self, game, priority):
        super(MM_Tribute, self).__init__(game, priority)
        self.myID = "MM Tribute"
        self.halted = False
        self.running = False
        self.hitsToWin = 3
        self.won = False
        self.tauntTimer = 8

        script = []
        # set up the pause text layer
        textString = "< TROLLS PAUSED >"
        textLayer = ep.EP_TextLayer(128 / 2,
                                    24,
                                    self.game.assets.font_6px_az_inverse,
                                    "center",
                                    opaque=False).set_text(textString,
                                                           color=ep.GREEN)
        script.append({'seconds': 0.3, 'layer': textLayer})
        # set up the alternating blank layer
        blank = dmd.FrameLayer(opaque=False,
                               frame=self.game.assets.dmd_blank.frames[0])
        blank.composite_op = "blacksrc"
        script.append({'seconds': 0.3, 'layer': blank})
        # make a script layer with the two
        self.pauseView = dmd.ScriptedLayer(128, 32, script)
        self.pauseView.composite_op = "blacksrc"
        self.leftTaunts = [
            self.game.assets.quote_mmLT1, self.game.assets.quote_mmLT2,
            self.game.assets.quote_mmLT3, self.game.assets.quote_mmLT4,
            self.game.assets.quote_mmLT5, self.game.assets.quote_mmLT6
        ]
        self.rightTaunts = [
            self.game.assets.quote_mmRT1, self.game.assets.quote_mmRT2,
            self.game.assets.quote_mmRT3, self.game.assets.quote_mmRT4,
            self.game.assets.quote_mmRT5, self.game.assets.quote_mmRT6
        ]
        self.leftSoloTaunts = [
            self.game.assets.quote_mmLTS1, self.game.assets.quote_mmLTS2,
            self.game.assets.quote_mmLTS3, self.game.assets.quote_mmLTS4,
            self.game.assets.quote_mmLTS5, self.game.assets.quote_mmLTS6
        ]
        self.rightSoloTaunts = [
            self.game.assets.quote_mmRTS1, self.game.assets.quote_mmRTS2,
            self.game.assets.quote_mmRTS3, self.game.assets.quote_mmRTS4,
            self.game.assets.quote_mmRTS5, self.game.assets.quote_mmRTS6
        ]
Ejemplo n.º 15
0
 def __init__(self, game, priority):
     super(Quickdraw, self).__init__(game, priority)
     self.myID = "QuickDraw"
     # default
     self.side = 0
     self.target = 0
     # build the pause view
     script = []
     # set up the text layer
     textString = "< QUICKDRAW PAUSED >"
     textLayer = ep.EP_TextLayer(128 / 2,
                                 24,
                                 self.game.assets.font_6px_az_inverse,
                                 "center",
                                 opaque=False).set_text(textString,
                                                        color=ep.YELLOW)
     script.append({'seconds': 0.3, 'layer': textLayer})
     # set up the alternating blank layer
     blank = dmd.FrameLayer(opaque=False,
                            frame=self.game.assets.dmd_blank.frames[0])
     blank.composite_op = "blacksrc"
     script.append({'seconds': 0.3, 'layer': blank})
     # make a script layer with the two
     self.pauseView = dmd.ScriptedLayer(128, 32, script)
     self.pauseView.composite_op = "blacksrc"
     self.eb_wins = self.game.user_settings['Gameplay (Feature)'][
         'Quickdraw Wins for EB']
     self.taunting = False
     self.keys_index = {
         'taunt':
         list(
             range(
                 len(self.game.sound.sounds[
                     self.game.assets.quote_quickdrawTaunt]))),
         'hit':
         list(
             range(
                 len(self.game.sound.sounds[
                     self.game.assets.quote_quickdrawWin])))
     }
     self.counts_index = {'taunt': 0, 'hit': 0}
     random.shuffle(self.keys_index['hit'])
     random.shuffle(self.keys_index['taunt'])
     self.running = False
     self.paused = False
Ejemplo n.º 16
0
 def display_player_number(self, idle=False):
     # if the skillshot display is busy, we don't trample on it
     if not self.game.skill_shot.busy:
         # for when the ball is sitting in the shooter lane with nothing going on
         myNumber = ("ONE", "TWO", "THREE", "FOUR")
         # get the current player
         p = self.game.current_player_index
         # set up the text
         textString = "PLAYER> " + myNumber[p]
         textLayer = ep.EP_TextLayer(128 / 2,
                                     7,
                                     self.game.assets.font_12px_az_outline,
                                     "center",
                                     opaque=False)
         textLayer.composite_op = "blacksrc"
         textLayer.set_text(textString)
         script = [{
             'seconds': 0.3,
             'layer': textLayer
         }, {
             'seconds': 0.3,
             'layer': None
         }]
         display = dmd.ScriptedLayer(128, 32, script)
         display.composite_op = "blacksrc"
         # turn the display on
         self.layer = display
         # every fifth time razz them
         if self.rotator[0]:
             self.game.base.play_quote(
                 self.game.assets.quote_dontJustStandThere)
         # then stick the current value on the end
         foo = self.rotator.pop(0)
         self.rotator.append(foo)
         ## then shift 0 to the end
         self.delay(name="Display", delay=1.5, handler=self.clear_layer)
     # with an idle call, set a repeat
     if idle:
         self.idle = True
         self.delay(name="idle",
                    delay=15,
                    handler=self.display_player_number,
                    param=True)
Ejemplo n.º 17
0
    def intro_banner(self):
        # play the sound
        self.game.base.priority_quote(self.game.assets.quote_multiball)
        # generate a flashing thing
        inverse = dmd.FrameLayer(
            True, frame=self.game.assets.dmd_multiballBannerInverse.frames[0])
        normal = dmd.FrameLayer(
            opaque=True, frame=self.game.assets.dmd_multiballBanner.frames[0])
        script = [{
            'seconds': 0.1,
            'layer': inverse
        }, {
            'seconds': 0.1,
            'layer': normal
        }]
        myLayer = dmd.ScriptedLayer(128, 32, script)
        self.layer = myLayer

        # show it for a bit - then move on
        self.delay(delay=1.5, handler=self.get_going)
Ejemplo n.º 18
0
 def bumpers_increased(self, value):
     backdrop = dmd.FrameLayer(
         opaque=True,
         frame=self.game.assets.dmd_singleCactusBorder.frames[0])
     topLine = dmd.TextLayer(60,
                             1,
                             self.game.assets.font_5px_AZ,
                             "center",
                             opaque=False).set_text("JET BUMPERS VALUE")
     increasedLine1 = dmd.TextLayer(60,
                                    8,
                                    self.game.assets.font_12px_az,
                                    "center",
                                    opaque=False).set_text("INCREASED")
     increasedLine2 = dmd.TextLayer(60,
                                    8,
                                    self.game.assets.font_15px_az_outline,
                                    "center",
                                    opaque=False)
     increasedLine1.composite_op = "blacksrc"
     increasedLine2.composite_op = "blacksrc"
     increasedLine2.set_text("INCREASED")
     pointsLine = dmd.TextLayer(60,
                                18,
                                self.game.assets.font_12px_az_outline,
                                "center",
                                opaque=False)
     pointsLine.composite_op = "blacksrc"
     pointsLine.set_text(str(ep.format_score(value)))
     script = []
     layer1 = dmd.GroupedLayer(
         128, 32, [backdrop, topLine, increasedLine1, pointsLine])
     layer2 = dmd.GroupedLayer(
         128, 32, [backdrop, topLine, pointsLine, increasedLine2])
     script.append({'seconds': 0.3, 'layer': layer1})
     script.append({'seconds': 0.3, 'layer': layer2})
     self.game.base.play_quote(self.game.assets.quote_yippie)
     self.layer = dmd.ScriptedLayer(128, 32, script)
     self.delay("Display", delay=2, handler=self.clear_layer)
Ejemplo n.º 19
0
    def __init__(self, game, priority):
        super(RiverChase, self).__init__(game, priority)
        self.myID = "River Chase"
        self.shotsToWin = self.game.user_settings['Gameplay (Feature)'][
            'Save Polly Shots - River']
        self.shotsSoFar = 0
        self.running = False
        self.halted = False
        self.won = False
        self.distance_value = int(30.0 / self.shotsToWin)
        self.valueMultiplier = 1  # shot value multiplier

        script = []
        # set up the text layer
        textString = "< SAVE POLLY PAUSED >"
        textLayer = ep.EP_TextLayer(128 / 2,
                                    24,
                                    self.game.assets.font_6px_az_inverse,
                                    "center",
                                    opaque=False).set_text(textString,
                                                           color=ep.BLUE)
        script.append({'seconds': 0.3, 'layer': textLayer})
        # set up the alternating blank layer
        blank = dmd.FrameLayer(opaque=False,
                               frame=self.game.assets.dmd_blank.frames[0])
        blank.composite_op = "blacksrc"
        script.append({'seconds': 0.3, 'layer': blank})
        # make a script layer with the two
        self.pauseView = dmd.ScriptedLayer(128, 32, script)
        self.pauseView.composite_op = "blacksrc"
        self.keys_index = {
            'start':
            list(
                range(
                    len(self.game.sound.sounds[
                        self.game.assets.quote_rotrIntro])))
        }
        self.counts_index = {'start': 0}
        random.shuffle(self.keys_index['start'])
Ejemplo n.º 20
0
 def letter_hit(self):
     if self.letters < 10:
         # stop any display delays
         self.cancel_delayed("display")
         self.letters += 1
         points = self.letters * 10000
         # do the display
         self.points_layer.set_text(
             self.game.score_display.format_score(points))
         layer1 = dmd.GroupedLayer(
             1920, 800, [self.logo_layers[self.letters], self.points_layer])
         self.layer = dmd.ScriptedLayer(
             1920,
             800, [{
                 'layer': layer1,
                 'seconds': 0.2
             }, {
                 'layer': self.logo_layers[self.letters - 1],
                 'seconds': 0.2
             }],
             opaque=True)
         # if complete follow up with ready message
         if self.letters == 10:
             self.delay("display",
                        delay=1.0,
                        handler=self.monger_ready_display)
             self.status = "READY"
         # set a clear delay
         else:
             self.delay("display", delay=1.3, handler=self.clear_layer)
         # score the points
         self.game.score(points)
         # play a delayed quote
         self.delay(delay=2, handler=self.spinner_script_quote)
     # if we're already at 10 letters raise the monger
     self.update_lamps()
     # update the recon info
     self.game.score_display.update_recon_monger()
Ejemplo n.º 21
0
    def __init__(self,game,priority):
        super(SS_Tribute, self).__init__(game,priority)
        self.myID = "SS Tribute"
        # for timer halting in saloon/jets
        self.halted = False
        self.running = False
        self.hitsToWin = 4
        self.hitsSoFar = 0
        self.beerHit = False
        self.won = False

        script = []
        # set up the pause text layer
        textString = "< LEAPERS PAUSED >"
        textLayer = ep.EP_TextLayer(128/2, 24, self.game.assets.font_6px_az_inverse, "center", opaque=False).set_text(textString,color=ep.ORANGE)
        script.append({'seconds':0.3,'layer':textLayer})
        # set up the alternating blank layer
        blank = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_blank.frames[0])
        blank.composite_op = "blacksrc"
        script.append({'seconds':0.3,'layer':blank})
        # make a script layer with the two
        self.pauseView = dmd.ScriptedLayer(128,32,script)
        self.pauseView.composite_op = "blacksrc"

        self.titleLine = ep.EP_TextLayer(64,0,self.game.assets.font_7px_bold_az, "center", opaque=True).set_text("LEAPER MANIA",color=ep.GREEN)
        self.leftTimerLine = ep.EP_TextLayer(0,26,self.game.assets.font_5px_AZ, "left",False)
        self.rightTimerLine = ep.EP_TextLayer(128,26,self.game.assets.font_5px_AZ,"right",False)
        self.scoreLine = ep.EP_TextLayer(64,8,self.game.assets.font_9px_az,"center",opaque=False)
        self.infoLine = ep.EP_TextLayer(0,1,self.game.assets.font_5px_AZ,"center", opaque=False)
        # offset position for the frog layers based on index position
        self.offsets = [0,-9,-18,-28]
        self.keys_index = {'hit':list(range(len(self.game.sound.sounds[self.game.assets.quote_ssHit]))),
                           'urge':list(range(len(self.game.sound.sounds[self.game.assets.quote_ssUrge])))}
        self.counts_index = {'hit':0,
                             'urge':0}
        random.shuffle(self.keys_index['hit'])
        random.shuffle(self.keys_index['urge'])
Ejemplo n.º 22
0
 def __init__(self, game):
     super(Bogey, self).__init__(game=game,
                                 priority=12,
                                 mode_type=AdvancedMode.Manual)
     self.myID = "Bogey"
     self.running = False
     self.bogey_lamps = [
         self.game.lamps['leftRamp100k'], self.game.lamps['leftRamp200k'],
         self.game.lamps['leftRamp300k'], self.game.lamps['leftRamp400k'],
         self.game.lamps['rightRamp100k'], self.game.lamps['rightRamp200k'],
         self.game.lamps['rightRamp300k'], self.game.lamps['rightRamp400k'],
         self.game.lamps['leftOrbitArrow'],
         self.game.lamps['leftRampArrow'],
         self.game.lamps['rightRampArrow'],
         self.game.lamps['rightOrbitArrow']
     ]
     self.bogey_clips = [
         'bogey_hit_1',
         'bogey_hit_2',
         'bogey_hit_3',
         'bogey_hit_4',
         'bogey_hit_5',
         'bogey_hit_6',
         'bogey_hit_7',
         'bogey_hit_8',
         'bogey_hit_9',
         'bogey_hit_10',
         'bogey_hit_11',
         'bogey_hit_12',
         'bogey_hit_13',
         'bogey_hit_14',
         'bogey_hit_15',
         'bogey_hit_16',
         'bogey_hit_17',
         'bogey_hit_18',
         'bogey_hit_19',
     ]
     back = dmd.FrameLayer(
         opaque=True,
         frame=self.game.animations['bogey_backdrop'].frames[0])
     top1 = dmd.HDTextLayer(930,
                            110,
                            self.game.fonts['bebas180'],
                            "center",
                            line_color=[64, 64, 64],
                            line_width=6,
                            interior_color=[192, 192, 192])
     top1.set_text("WE'VE")
     top2 = dmd.HDTextLayer(930,
                            285,
                            self.game.fonts['bebas180'],
                            "center",
                            line_color=[64, 64, 64],
                            line_width=6,
                            interior_color=[192, 192, 192])
     top2.set_text("GOT  A")
     top3 = dmd.HDTextLayer(930,
                            460,
                            self.game.fonts['bebas180'],
                            "center",
                            line_color=[64, 64, 64],
                            line_width=6,
                            interior_color=[192, 192, 192])
     top3.set_text("BOGEY")
     self.timer_layer = dmd.HDTextLayer(1800,
                                        110,
                                        self.game.fonts['bebas500'],
                                        "right",
                                        line_color=[64, 64, 64],
                                        line_width=4,
                                        interior_color=[192, 192, 192])
     bottom1 = dmd.HDTextLayer(930,
                               110,
                               self.game.fonts['bebas180'],
                               "center",
                               line_color=[64, 0, 0],
                               line_width=6,
                               interior_color=[192, 0, 0])
     bottom1.set_text("SHOOT")
     bottom2 = dmd.HDTextLayer(930,
                               285,
                               self.game.fonts['bebas180'],
                               "center",
                               line_color=[64, 0, 0],
                               line_width=6,
                               interior_color=[192, 0, 0])
     bottom2.set_text("LIT")
     bottom3 = dmd.HDTextLayer(930,
                               460,
                               self.game.fonts['bebas180'],
                               "center",
                               line_color=[64, 0, 0],
                               line_width=6,
                               interior_color=[192, 0, 0])
     bottom3.set_text("ARROWS")
     page1 = dmd.GroupedLayer(1920, 800,
                              [back, top1, top2, top3, self.timer_layer])
     page2 = dmd.GroupedLayer(1920, 800,
                              [back, top2, top3, self.timer_layer])
     page3 = dmd.GroupedLayer(1920, 800, [back, top3, self.timer_layer])
     page4 = dmd.GroupedLayer(1920, 800, [back, self.timer_layer])
     page5 = dmd.GroupedLayer(1920, 800, [back, bottom1, self.timer_layer])
     page6 = dmd.GroupedLayer(1920, 800,
                              [back, bottom1, bottom2, self.timer_layer])
     page7 = dmd.GroupedLayer(
         1920, 800, [back, bottom1, bottom2, bottom3, self.timer_layer])
     page8 = dmd.GroupedLayer(1920, 800,
                              [back, bottom2, bottom3, self.timer_layer])
     page9 = dmd.GroupedLayer(1920, 800, [back, bottom3, self.timer_layer])
     page10 = dmd.GroupedLayer(1920, 800, [back, top1, self.timer_layer])
     page11 = dmd.GroupedLayer(1920, 800,
                               [back, top1, top2, self.timer_layer])
     self.main_layer = dmd.ScriptedLayer(1920, 800, [{
         'seconds': 1,
         'layer': page1
     }, {
         'seconds': 0.2,
         'layer': page2
     }, {
         'seconds': 0.2,
         'layer': page3
     }, {
         'seconds': 0.5,
         'layer': page4
     }, {
         'seconds': 0.2,
         'layer': page5
     }, {
         'seconds': 0.2,
         'layer': page6
     }, {
         'seconds': 1,
         'layer': page7
     }, {
         'seconds': 0.2,
         'layer': page8
     }, {
         'seconds': 0.2,
         'layer': page9
     }, {
         'seconds': 0.5,
         'layer': page4
     }, {
         'seconds': 0.2,
         'layer': page10
     }, {
         'seconds': 0.2,
         'layer': page11
     }])
     self.bogey_award_text = dmd.HDTextLayer(1920 / 2,
                                             150,
                                             self.game.fonts['default'],
                                             "center",
                                             line_color=[64, 0, 0],
                                             line_width=6,
                                             interior_color=[192, 0, 0])
     self.bogey_award_score = dmd.HDTextLayer(1920 / 2,
                                              300,
                                              self.game.fonts['main_score'],
                                              "center",
                                              line_color=[64, 64, 0],
                                              line_width=6,
                                              interior_color=[192, 192, 0])
     self.bogey_award_score_dim = dmd.HDTextLayer(
         1920 / 2,
         300,
         self.game.fonts['main_score'],
         "center",
         line_color=[16, 16, 0],
         line_width=6,
         interior_color=[64, 64, 0])
     self.flash_text = dmd.ScriptedLayer(
         1920, 800, [{
             'seconds': 0.2,
             'layer': self.bogey_award_score
         }, {
             'seconds': 0.2,
             'layer': self.bogey_award_score_dim
         }])
Ejemplo n.º 23
0
    def __init__(self, game, priority, left_text, right_text, entered_handler):
        super(HD_InitialEntryMode_ML, self).__init__(game, priority)
        
        self.entered_handler = entered_handler
        
        # self.init_font = dmd.font_named('Font09Bx7.dmd')
        # self.font = dmd.font_named('Font07x5.dmd')
        # self.letters_font = dmd.font_named('Font07x5.dmd')

        ## YOU almost CERTAINLY need to change these...
        self.init_font = self.game.fonts['large']
        self.text_font = self.game.fonts['small']
        self.letters_font = self.game.fonts['mono-tiny']
        self.letters_font_mini = self.game.fonts['mono-micro']

        self.init_font_height = self.init_font.size("Z")[1]
        
        self.text_font_height = self.text_font.size(left_text)[1]

        self.layer = dmd.GroupedLayer(self.display_width, self.display_height)
        self.layer.opaque = True
        self.layer.layers = []
        
        if type(right_text) != list:
            right_text = [right_text]
        if type(left_text) != list:
            left_text = [left_text]
        
        seconds_per_text = 1.5
        
        script = []
        mh = 0
        for text in left_text:
            words = text.split()
            h = self.text_font_height*len(words)
            mh = max(h, mh)
            frame = dmd.Frame(width=self.display_width, height=h)
            i = 0
            for w in words:
                self.text_font.draw(frame, w, 0, i*self.text_font_height)
                i+=1
            script.append({'seconds':seconds_per_text, 'layer':dmd.FrameLayer(frame=frame)})
        topthird_left_layer = dmd.ScriptedLayer(width=self.display_width, height=mh, script=script)
        topthird_left_layer.composite_op = 'blacksrc'
        topthird_left_layer.target_y = self.display_height/2 - mh/2
        topthird_left_layer.target_x = 10
        self.layer.layers += [topthird_left_layer]
        
        script = []
        mh = 0
        for text in right_text:
            words = text.split()
            h = self.text_font_height*len(words)
            mh = max(h, mh)
            frame = dmd.Frame(width=self.display_width, height=h)
            i = 0
            for w in words:
                self.text_font.draw(frame, w, self.display_width-(self.text_font.size(w)[0]), i*self.text_font_height)
                i+=1
            script.append({'seconds':seconds_per_text, 'layer':dmd.FrameLayer(frame=frame)})
        topthird_right_layer = dmd.ScriptedLayer(width=self.display_width, height=mh, script=script)
        topthird_right_layer.composite_op = 'blacksrc'
        topthird_right_layer.target_y = self.display_height/2 - mh/2
        topthird_right_layer.target_x = -10
        self.layer.layers += [topthird_right_layer]

        # the entered initials so far       
        self.inits_layer = dmd.HDTextLayer(self.display_width/2, self.init_font_height/2+5, self.init_font, "center", vert_justify="center", line_color=(128,128,255), line_width=1, interior_color=(0,0,192),fill_color=(0,0,0)).set_text("")
        self.inits_layer.set_target_position(0, self.text_font_height+2)
        self.layer.layers += [self.inits_layer]

        
        self.letters = []
        for idx in range(26):
            self.letters += [chr(ord('A')+idx)]
        self.letters += [' ', '.', self.char_back, self.char_done]
        self.current_letter_index = 0
        self.inits = self.letters[self.current_letter_index]

        # Draw my fancy rows
        w = self.space_per_char*(self.columns_of_chars_in_palette+1)
        h = self.space_per_char*(30/self.columns_of_chars_in_palette+1.5)
        print("About to create a frame with w=" + str(w) + "; h=" + str(h))
        self.char_optsF = dmd.Frame(width=w, height=h)
        for index in range(30):
            x = index % self.columns_of_chars_in_palette 
            y = index / self.columns_of_chars_in_palette 
            (w,h) = self.letters_font.size(self.letters[index])
            if(index<28):
                self.letters_font.draw(self.char_optsF, self.letters[index], (x+1) * self.space_per_char - w/2, (y+1) * self.space_per_char - h/2)
            elif(index==28):
                (w,h) = self.letters_font_mini.size("DEL")
                self.letters_font_mini.draw(self.char_optsF, "DEL", (x+1) * self.space_per_char - w/2, (y+1) * self.space_per_char - h/2)
            elif(index==29):
                (w,h) = self.letters_font_mini.size("END")
                self.letters_font_mini.draw(self.char_optsF, "END", (x+1) * self.space_per_char - w/2, (y+1) * self.space_per_char - h/2)

        fbox = dmd.Frame(width=self.space_per_char+2, height=self.space_per_char+2)
        fbox.fill_rect(0, 0, self.space_per_char+2, self.space_per_char+2, (128,128,255))
        fbox.fill_rect(2, 2, self.space_per_char-4+2, self.space_per_char-4+2, (0,64,128))
        self.selection_box_layer = dmd.FrameLayer(opaque=False, frame=fbox)
        self.selection_box_layer.composite_op = "max"
        self.layer.layers += [self.selection_box_layer]

        self.char_opts_layer = dmd.FrameLayer(opaque=False, frame=self.char_optsF)
        self.char_opts_layer.set_target_position((self.display_width-(self.columns_of_chars_in_palette+1) * self.space_per_char)/2, self.init_font_height)
        # self.char_opts_layer.composite_op = "blacksrc"
        self.layer.layers += [self.char_opts_layer]


        self.animate_to_index(0)
Ejemplo n.º 24
0
    def __init__(self, game, priority, left_text, right_text, entered_handler):
        super(HD_InitialEntryMode_ML, self).__init__(game, priority)
        
        self.entered_handler = entered_handler
        
        # self.init_font = dmd.font_named('Font09Bx7.dmd')
        # self.font = dmd.font_named('Font07x5.dmd')
        # self.letters_font = dmd.font_named('Font07x5.dmd')

        self.init_font = self.game.fonts['small']
        self.text_font = self.game.fonts['large']
        self.letters_font = self.game.fonts['med']

        self.init_font_height = self.init_font.size("Z")[1]
        self.text_font_height = self.text_font.size("Z")[1]

        self.layer = dmd.GroupedLayer(480, 240)
        self.layer.opaque = True
        self.layer.layers = []
        
        if type(right_text) != list:
            right_text = [right_text]
        if type(left_text) != list:
            left_text = [left_text]
        
        seconds_per_text = 1.5
        
        script = []
        for text in left_text:
            frame = dmd.Frame(width=450, height=self.text_font_height)
            self.text_font.draw(frame, text, 0, 0)
            script.append({'seconds':seconds_per_text, 'layer':dmd.FrameLayer(frame=frame)})
        topthird_left_layer = dmd.ScriptedLayer(width=480, height=self.text_font_height, script=script)
        topthird_left_layer.composite_op = 'blacksrc'
        self.layer.layers += [topthird_left_layer]
        
        script = []
        for text in right_text:
            frame = dmd.Frame(width=480, height=self.text_font_height)
            self.text_font.draw(frame, text, 480-(self.text_font.size(text)[0]), 0)
            script.append({'seconds':seconds_per_text, 'layer':dmd.FrameLayer(frame=frame)})
        topthird_right_layer = dmd.ScriptedLayer(width=480, height=self.text_font_height, script=script)
        topthird_right_layer.composite_op = 'blacksrc'
        self.layer.layers += [topthird_right_layer]
        
        self.inits_frame = dmd.Frame(width=480, height=self.init_font_height)
        inits_layer = dmd.FrameLayer(opaque=False, frame=self.inits_frame)
        inits_layer.set_target_position(0, self.text_font_height+2)
        self.layer.layers += [inits_layer]
        
        self.lowerhalf_layer = dmd.FrameQueueLayer(opaque=False, hold=True)
        self.lowerhalf_layer.set_target_position(0, self.init_font_height+self.text_font_height)
        self.layer.layers += [self.lowerhalf_layer]
        
        self.letters = []
        for idx in range(26):
            self.letters += [chr(ord('A')+idx)]
        self.letters += [' ', '.', self.char_back, self.char_done]
        self.current_letter_index = 0
        self.inits = self.letters[self.current_letter_index]
        self.animate_to_index(0)
Ejemplo n.º 25
0
    def end_cva(self):
        # kill the taunt delay
        self.cancel_delayed("Taunt")
        # kill the alien delay if there is one
        self.cancel_delayed("Aliens")
        # and the display delay
        self.cancel_delayed("Display")
        # stop the GI lampshow and end the delay if any for the next one
        self.game.GI_lampctrl.stop_show()
        self.cancel_delayed("Lampshow")
        # stop the music
        #self.stop_music()
        # kill the drop targets
        self.game.bad_guys.kill_power()
        # do the final display
        # ship frame and alien frame
        shipBorder = dmd.FrameLayer(opaque=True, frame=self.game.assets.dmd_cvaShipsBorder.frames[0])
        alienBorder = dmd.FrameLayer(opaque=True, frame=self.game.assets.dmd_cvaAliensBorder.frames[0])
        # blank script
        script = []
        # Do the saucer bit, if any saucers were destroyed
        if self.saucerHits > 0:
            # set the saucer title line
            if self.saucerHits == 1:
                textStringOne = "1 SAUCER"
            else:
                textStringOne = str(self.saucerHits) + " SAUCERS"
            titleLayerOne = ep.EP_TextLayer(64, 3, self.game.assets.font_7px_az, "center", opaque=False)
            titleLayerOne.set_text(textStringOne,color=ep.GREEN)
            titleTwoLayerOne = ep.EP_TextLayer(64,11, self.game.assets.font_5px_AZ,"center",opaque=False)
            titleTwoLayerOne.set_text("DESTROYED",color=ep.GREEN)
            # set the saucer score line
            scoreLayerOne = ep.pulse_text(self,64,18,ep.format_score(self.saucerPoints),align="center",myOpaque=True,size="9px",timing=0.1,color=ep.RED)
            # build the layer
            pageOne = dmd.GroupedLayer(128,32,[shipBorder,titleLayerOne,titleTwoLayerOne,scoreLayerOne])
            # add it to the script
            script.append({'layer':pageOne,'seconds':1.5})
        # do the aliens bit if any aliens were destroyed
        if self.aliensKilled > 0:
            # set the aliens title line
            if self.aliensKilled == 1:
                textStringTwo = "1 ALIEN"
            else:
                textStringTwo = str(self.aliensKilled) + " ALIENS"
            titleLayerTwo = ep.EP_TextLayer(64, 3, self.game.assets.font_7px_az, "center", opaque=False)
            titleLayerTwo.set_text(textStringTwo,color=ep.GREEN)
            titleTwoLayerTwo = ep.EP_TextLayer(64,11,self.game.assets.font_5px_AZ, "center",opaque=False)
            titleTwoLayerTwo.set_text("KILLED",color=ep.GREEN)
            # set the aliens score line
            scoreLayerTwo = ep.pulse_text(self,64,18,ep.format_score(self.alienPoints),align="center",myOpaque=True,size="9px",timing=0.1,color=ep.RED)
            # build the layer
            pageTwo = dmd.GroupedLayer(128,32,[alienBorder,titleLayerTwo,titleTwoLayerTwo,scoreLayerTwo])
            # add it to the script
            script.append({'layer':pageTwo,'seconds':1.5})
        # if either exist, start the script
        if script:
            # setup the script layer
            summary = dmd.ScriptedLayer(128,32,script)
            # and activate
            self.layer = summary
            myDelay = 1.5
            # play a cheer noise
            self.game.sound.play(self.game.assets.sfx_cvaFinalRiff)
            self.delay(delay=0.5,handler=self.game.sound.play,param=self.game.assets.sfx_cheers)
            # if we hit both parts - play a second riff
            if self.saucerHits > 0 and self.aliensKilled > 0:
                self.delay(delay=1.5,handler=self.game.sound.play,param=self.game.assets.sfx_cvaFinalRiff)
                self.delay(delay=2,handler=self.game.sound.play,param=self.game.assets.sfx_cheers)
                myDelay = 3

            self.delay(delay = myDelay,handler=self.finish_up)
        # if neither exist - go straight to finishing up
        else:
            self.finish_up()
Ejemplo n.º 26
0
 def tally(self,title,amount,value,frame_delay,callback,step):
     script = []
     # set the backdrop and offsets
     if title == "JACKPOT":
         backdrop = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_moneybagBorderRight.frames[0])
         x_offset = 50
     elif title == "BAD GUY":
         backdrop = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_singleCowboyBorderRight.frames[0])
         x_offset = 50
     else:
         backdrop = dmd.FrameLayer(opaque=False, frame=self.game.assets.dmd_blank.frames[0])
         x_offset = 64
     # first just the title
     titleLine = ep.EP_TextLayer(x_offset, 10, self.game.assets.font_12px_az, "center", opaque=False).set_text(title + "S",color=ep.ORANGE)
     combined = dmd.GroupedLayer(128,32,[backdrop,titleLine])
     script.append({"layer":combined,"seconds":0.5})
     myWait = 0.5
     # have to define pointsLine and TitleLine just in case it's zero
     titleString = "0 " + title + "S"
     titleLine = ep.EP_TextLayer(x_offset,3,self.game.assets.font_7px_az, "center", opaque=False).set_text(titleString,color=ep.BROWN)
     points = 0
     pointsLine = ep.EP_TextLayer(x_offset, 12, self.game.assets.font_12px_az, "center", opaque=False).set_text(ep.format_score(points),color=ep.ORANGE)
     combined = dmd.GroupedLayer(128,32,[backdrop,titleLine,pointsLine])
     script.append({"layer":combined,"seconds":frame_delay})
     # then generate frames for each level of title
     for i in range(1,amount+1,1):
         points = i * value
         if i == 1:
             titleString = "1 " + title
         else:
             titleString = str(i) + " " + title + "S"
         titleLine = ep.EP_TextLayer(x_offset,3,self.game.assets.font_7px_az, "center", opaque=False).set_text(titleString,color=ep.BROWN)
         pointsLine = ep.EP_TextLayer(x_offset, 12, self.game.assets.font_12px_az, "center", opaque=False).set_text(ep.format_score(points),color=ep.ORANGE)
         combined = dmd.GroupedLayer(128,32,[backdrop,titleLine,pointsLine])
         script.append({"layer":combined,"seconds":frame_delay})
         myWait += frame_delay
         # set a sound for this point at the start of the wipe
     #self.delay(name="Display",delay=myWait,handler=self.game.sound.play,param=self.game.assets.sfx_lightning2)
     # employ the burst wipe
     anim = self.game.assets.dmd_burstWipe
     animWait = len(anim.frames) / 15.0
     myWait += animWait
     animLayer = ep.EP_AnimatedLayer(anim)
     animLayer.hold = True
     animLayer.frame_time = 4
     animLayer.composite_op = "blacksrc"
     # add the burst
     burstLayer = dmd.GroupedLayer(128,32,[combined,animLayer])
     script.append({"layer":burstLayer,"seconds":animWait})
     # then a final total with the second half of the wipe
     anim = self.game.assets.dmd_burstWipe2
     animLayer = ep.EP_AnimatedLayer(anim)
     animLayer.hold = True
     animLayer.frame_time = 4
     animLayer.composite_op = "blacksrc"
     # set another sound to play after the anim
     myWait += animWait
     #self.delay(name="Display",delay=myWait,handler=self.game.sound.play,param=self.game.assets.sfx_cheers)
     if step == 2:
         preString = "JACKPOTS "
     elif step == 3:
         preString = "BAD GUYS "
     else:
         preString = ""
     titleLine = ep.EP_TextLayer(x_offset,3,self.game.assets.font_7px_az, "center", opaque=False).set_text(preString + "TOTAL:",color=ep.BROWN)
     combined = dmd.GroupedLayer(128,32,[backdrop,titleLine,pointsLine,animLayer])
     script.append({"layer":combined,"seconds":(animWait + 2)})
     # tack on that extra second
     myWait += 1
     # then set off the layer
     self.layer = dmd.ScriptedLayer(128,32,script)
     # add the points to the grand total
     self.grandTotal += points
     # and delay the comeback for step 2
     print "TALLY LOOP STEP " + str(step)
     self.delay(name="Display",delay=myWait+1.5,handler=callback,param=step)
Ejemplo n.º 27
0
 def __init__(self, game):
     super(FastScoring, self).__init__(game=game,
                                       priority=9,
                                       mode_type=AdvancedMode.Manual)
     self.myID = "FastScoring"
     self.running = False
     backdrop = dmd.FrameLayer(
         frame=self.game.animations['metal_bg'].frames[0])
     banner = dmd.PanningLayer(
         3840,
         800,
         self.game.animations['fast_scoring_banner'].frames[0], (0, 0),
         (20, 0),
         bounce=False,
         wrap=True)
     #self.explosion = self.game.animations['fast_scoring_explosion']
     #self.explosion.composite_op = "blacksrc"
     #self.explosion.enabled = False
     #self.display = dmd.GroupedLayer(1920, 800, [backdrop, banner, self.explosion], opaque=True)
     self.score1 = dmd.HDTextLayer(250,
                                   100,
                                   self.game.fonts['default'],
                                   "center",
                                   line_color=(0, 0, 0),
                                   line_width=3,
                                   interior_color=(255, 255, 0))
     self.score2 = dmd.HDTextLayer(300,
                                   250,
                                   self.game.fonts['default'],
                                   "center",
                                   line_color=(0, 0, 0),
                                   line_width=3,
                                   interior_color=(255, 255, 0))
     self.score3 = dmd.HDTextLayer(250,
                                   450,
                                   self.game.fonts['default'],
                                   "center",
                                   line_color=(0, 0, 0),
                                   line_width=3,
                                   interior_color=(255, 255, 0))
     self.score4 = dmd.HDTextLayer(1700,
                                   100,
                                   self.game.fonts['default'],
                                   "center",
                                   line_color=(0, 0, 0),
                                   line_width=3,
                                   interior_color=(255, 255, 0))
     self.score5 = dmd.HDTextLayer(1600,
                                   250,
                                   self.game.fonts['default'],
                                   "center",
                                   line_color=(0, 0, 0),
                                   line_width=3,
                                   interior_color=(255, 255, 0))
     self.score6 = dmd.HDTextLayer(1700,
                                   450,
                                   self.game.fonts['default'],
                                   "center",
                                   line_color=(0, 0, 0),
                                   line_width=3,
                                   interior_color=(255, 255, 0))
     self.score_layers = [
         self.score1, self.score2, self.score3, self.score4, self.score5,
         self.score6
     ]
     self.timer_layer = dmd.HDTextLayer(1920 / 2,
                                        120,
                                        self.game.fonts['bebas500'],
                                        "center",
                                        line_color=(0, 0, 0),
                                        line_width=8,
                                        interior_color=(255, 0, 0))
     timer_box = self.game.animations['timer_box']
     timer_box.set_target_position(731, 164)
     title = dmd.HDTextLayer(1920 / 2,
                             20,
                             self.game.fonts['default'],
                             "center",
                             line_color=(0, 0, 0),
                             line_width=3,
                             interior_color=(224, 224, 224))
     title.set_text("FAST SCORING")
     bottom1 = dmd.HDTextLayer(1920 / 2,
                               650,
                               self.game.fonts['default'],
                               "center",
                               line_color=(0, 0, 0),
                               line_width=3,
                               interior_color=(224, 224, 224))
     bottom1.set_text("IRONMAN TARGETS RAISE VALUE")
     self.bottom2 = dmd.HDTextLayer(1920 / 2,
                                    650,
                                    self.game.fonts['default'],
                                    "center",
                                    line_color=(0, 0, 0),
                                    line_width=3,
                                    interior_color=(224, 224, 224))
     self.bottom2.set_text("ALL SWITCHES SCORE 10,000 POINTS")
     info_line = dmd.ScriptedLayer(1920, 800, [{
         'layer': bottom1,
         'seconds': 2
     }, {
         'layer': self.bottom2,
         'seconds': 2
     }])
     self.display = dmd.GroupedLayer(
         1920,
         800, [
             backdrop, banner, title, info_line, timer_box,
             self.timer_layer, self.score1, self.score2, self.score3,
             self.score4, self.score5, self.score6
         ],
         opaque=True)
     self.names = ['fast5', 'fast4', 'fast3', 'fast2', 'fast1', 'fast0']
     self.timer_start_value = 41
     self.fade_index = 0
Ejemplo n.º 28
0
    def __init__(self, game, priority):
        super(Ambush, self).__init__(game, priority)
        self.myID = "Ambush"
        self.posts = [
            self.game.coils.leftGunFightPost, self.game.coils.rightGunFightPost
        ]

        self.targetNames = ['Left', 'Left Center', 'Right Center', 'Right']
        # setup the standing guys
        self.guyLayers = []
        self.badGuy0 = dmd.FrameLayer(
            opaque=False,
            frame=self.game.assets.dmd_dudeShotFullBody.frames[0])
        self.badGuy0.set_target_position(-49, 0)
        self.badGuy0.composite_op = "blacksrc"
        self.guyLayers.append(self.badGuy0)
        self.badGuy1 = dmd.FrameLayer(
            opaque=False,
            frame=self.game.assets.dmd_dudeShotFullBody.frames[0])
        self.badGuy1.set_target_position(-16, 0)
        self.badGuy1.composite_op = "blacksrc"
        self.guyLayers.append(self.badGuy1)
        self.badGuy2 = dmd.FrameLayer(
            opaque=False,
            frame=self.game.assets.dmd_dudeShotFullBody.frames[0])
        self.badGuy2.set_target_position(15, 0)
        self.badGuy2.composite_op = "blacksrc"
        self.guyLayers.append(self.badGuy2)
        self.badGuy3 = dmd.FrameLayer(
            opaque=False,
            frame=self.game.assets.dmd_dudeShotFullBody.frames[0])
        self.badGuy3.set_target_position(47, 0)
        self.badGuy3.composite_op = "blacksrc"
        self.guyLayers.append(self.badGuy3)
        ## lamps
        self.lamps = [
            self.game.lamps.badGuyL0, self.game.lamps.badGuyL1,
            self.game.lamps.badGuyL2, self.game.lamps.badGuyL3
        ]
        # number of guys that can escape before you lose
        self.LOSE = self.game.user_settings['Gameplay (Feature)'][
            'Ambush Escapes to Lose']
        # how long the bad guys wait before disappearing
        self.SECONDS = self.game.user_settings['Gameplay (Feature)'][
            'Ambush Target Timer']
        self.ball_saver = self.game.user_settings['Gameplay (Feature)'][
            'Ambush Ball Saver']

        # build the pause view
        script = []
        # set up the text layer
        textString = "< AMBUSH PAUSED >"
        textLayer = ep.EP_TextLayer(128 / 2,
                                    24,
                                    self.game.assets.font_6px_az_inverse,
                                    "center",
                                    opaque=False).set_text(textString,
                                                           color=ep.BLUE)
        script.append({'seconds': 0.3, 'layer': textLayer})
        # set up the alternating blank layer
        blank = dmd.FrameLayer(opaque=False,
                               frame=self.game.assets.dmd_blank.frames[0])
        blank.composite_op = "blacksrc"
        script.append({'seconds': 0.3, 'layer': blank})
        # make a script layer with the two
        self.pauseView = dmd.ScriptedLayer(128, 32, script)
        self.pauseView.composite_op = "blacksrc"
Ejemplo n.º 29
0
    def __init__(self,
                 game,
                 priority,
                 left_text,
                 right_text,
                 entered_handler,
                 max_inits,
                 extended=False):
        super(InitialEntryMode, self).__init__(game, priority)

        self.entered_handler = entered_handler

        self.init_font = self.game.assets.font_09Bx7
        self.font = self.game.assets.font_07x5
        self.letters_font = self.game.assets.font_07x5

        self.layer = dmd.GroupedLayer(128, 32)
        self.layer.opaque = True
        self.layer.layers = []
        self.knocks = 0
        self.max_inits = max_inits
        self.extended = extended

        if type(right_text) != list:
            right_text = [right_text]
        if type(left_text) != list:
            left_text = [left_text, "MAX " + str(self.max_inits)]

        seconds_per_text = 1.5

        script = []
        for text in left_text:
            frame = dmd.Frame(width=128, height=8)
            self.font.draw(frame, text, 0, 0, color=ep.YELLOW)
            script.append({
                'seconds': seconds_per_text,
                'layer': dmd.FrameLayer(frame=frame)
            })
        topthird_left_layer = dmd.ScriptedLayer(width=128,
                                                height=8,
                                                script=script)
        topthird_left_layer.composite_op = 'blacksrc'
        self.layer.layers += [topthird_left_layer]

        script = []
        for text in right_text:
            frame = dmd.Frame(width=128, height=8)
            self.font.draw(frame,
                           text,
                           128 - (self.font.size(text)[0]),
                           0,
                           color=ep.ORANGE)
            script.append({
                'seconds': seconds_per_text,
                'layer': dmd.FrameLayer(frame=frame)
            })
            if text == "Grand Champion":
                self.knocks += 2
            elif text == 'High Score #1' or \
                 text == 'High Score #2' or \
                 text == 'High Score #3' or \
                 text == 'High Score #4':
                self.knocks += 1

        topthird_right_layer = dmd.ScriptedLayer(width=128,
                                                 height=8,
                                                 script=script)
        topthird_right_layer.composite_op = 'blacksrc'
        self.layer.layers += [topthird_right_layer]

        self.inits_frame = dmd.Frame(width=128, height=10)
        inits_layer = dmd.FrameLayer(opaque=False, frame=self.inits_frame)
        inits_layer.set_target_position(0, 11)
        self.layer.layers += [inits_layer]

        self.lowerhalf_layer = dmd.FrameQueueLayer(opaque=False, hold=True)
        self.lowerhalf_layer.set_target_position(0, 24)
        self.layer.layers += [self.lowerhalf_layer]

        self.letters = []
        for idx in range(26):
            self.letters += [chr(ord('A') + idx)]
        self.letters += [' ', '.']
        if self.extended:
            self.letters += [
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '(', ')',
                '@', '*', '&', '<', '>', '=', '^', '/', '-', '+', '!', '$',
                '"', "'"
            ]
        self.letters += [self.char_back, self.char_done]
        self.current_letter_index = 0
        self.inits = self.letters[self.current_letter_index]
        self.animate_to_index(0)
Ejemplo n.º 30
0
    def start_save_polly(self, step=1):
        if step == 1:
            # audit
            self.game.game_data['Feature']['Center Polly Started'] += 1
            # set the level 1 stack flag
            self.game.stack_level(2, True)
            # set the running flag
            self.running = True
            # clear any running music
            #self.stop_music()
            # set the center to crazy stage
            self.game.set_tracking('centerRampStage', 99)
            self.lamp_update()
            ## TEMP PLAY INTRO
            duration = self.game.base.priority_quote(
                self.game.assets.quote_ttttDox)
            # Secondary intro quote
            self.delay("Operational",
                       delay=duration + 0.1,
                       handler=self.secondary_intro_quote)

            # start the music
            self.music_on(self.game.assets.music_pollyPeril)
            # reset the train
            self.game.train.reset_toy(step=2)
            # run the animation
            anim = self.game.assets.dmd_pollyIntro
            myWait = len(anim.frames) / 30.0
            animLayer = dmd.AnimatedLayer(frames=anim.frames,
                                          hold=True,
                                          opaque=True,
                                          repeat=False,
                                          frame_time=2)
            self.layer = animLayer

            # set the timer for the mode
            self.modeTimer = 30
            # setup some layers
            # alternate lines for the bottom
            script = []
            shotsLine1 = dmd.TextLayer(34,
                                       11,
                                       self.game.assets.font_5px_AZ,
                                       "center",
                                       opaque=False).set_text("SHOTS WORTH:")
            shotsLine2 = ep.EP_TextLayer(
                34, 17, self.game.assets.font_7px_az, "center",
                opaque=False).set_text(str(ep.format_score(self.shotValue)),
                                       color=ep.MAGENTA)
            # group layer of the award lines
            textString2 = str(
                (self.shotsToWin - self.shotsSoFar)) + " SHOTS FOR"
            self.prog_awardLine1 = dmd.TextLayer(
                34, 11, self.game.assets.font_7px_az, "center",
                opaque=False).set_text(textString2)
            page1 = dmd.GroupedLayer(128, 32,
                                     [self.prog_awardLine1, self.awardLine2])
            page1.composite_op = "blacksrc"
            script.append({"seconds": 2, "layer": page1})
            # group layer of the shot value info lines
            page2 = dmd.GroupedLayer(128, 32, [shotsLine1, shotsLine2])
            page2.composite_op = "blacksrc"
            script.append({"seconds": 2, "layer": page2})
            # scripted layer alternating between the info and award lines
            self.infoLayer = dmd.ScriptedLayer(128, 32, script)
            self.infoLayer.composite_op = "blacksrc"

            # loop back for the title card
            self.delay("Operational",
                       delay=myWait,
                       handler=self.start_save_polly,
                       param=2)
        if step == 2:
            # set up the title card
            titleCard = dmd.FrameLayer(
                opaque=False, frame=self.game.assets.dmd_ttttBanner.frames[0])
            # transition to the title card
            self.transition = ep.EP_Transition(self, self.layer, titleCard,
                                               ep.EP_Transition.TYPE_WIPE,
                                               ep.EP_Transition.PARAM_EAST)
            # delay the start process
            self.delay("Get Going", delay=2, handler=self.in_progress)