Пример #1
0
	def get_info_layers(self):
		self.title_layer_0 = dmd.TextLayer(128/2, 12, font_named("04B-03-7px.dmd"), "center").set_text('Ball in Play : '+str(self.game.ball)+ ' of '+str(self.game.balls_per_game))
		self.value_0_layer = dmd.TextLayer(128/2, 22, font_named("04B-03-7px.dmd"), "center").set_text('Extra Balls to Play : '+str(self.game.utilities.get_player_stats('extra_balls')))

		self.layer_0 = dmd.GroupedLayer(128, 32, [self.title_layer_0, self.value_0_layer])

		self.title_layer_1a = dmd.TextLayer(128/2, 12, font_named("04B-03-7px.dmd"), "center").set_text('Missions completed : '+str(self.game.utilities.get_player_stats('kills_completed')))
		self.title_layer_1b = dmd.TextLayer(128/2, 22, font_named("04B-03-7px.dmd"), "center").set_text('Next mission : '+self.game.utilities.get_player_stats('next_mission'))

		self.layer_1 = dmd.GroupedLayer(128, 32, [self.title_layer_1a, self.title_layer_1b])

                self.title_layer_2a = dmd.TextLayer(128/2, 12, font_named("04B-03-7px.dmd"), "center").set_text('Loop shots : '+str(self.game.utilities.get_player_stats('loop_shots')))
		self.title_layer_2b = dmd.TextLayer(128/2, 22, font_named("04B-03-7px.dmd"), "center").set_text('Yagov shots : '+str(self.game.utilities.get_player_stats('yagov_shots')))

		self.layer_2 = dmd.GroupedLayer(128, 32, [self.title_layer_2a, self.title_layer_2b])

                self.title_layer_3a = dmd.TextLayer(128/2, 12, font_named("04B-03-7px.dmd"), "center").set_text('Multiballs played : '+str(self.game.utilities.get_player_stats('multiballs_played')))
		self.title_layer_3b = dmd.TextLayer(128/2, 22, font_named("04B-03-7px.dmd"), "center").set_text('Balls locked : '+str(self.game.utilities.get_player_stats('balls_locked')))

		self.layer_3 = dmd.GroupedLayer(128, 32, [self.title_layer_3a, self.title_layer_3b])

                self.title_layer_4a = dmd.TextLayer(128/2, 12, font_named("04B-03-7px.dmd"), "center").set_text('Spinner score : '+str(self.game.utilities.get_player_stats('spinner_score')))
		self.title_layer_4b = dmd.TextLayer(128/2, 22, font_named("04B-03-7px.dmd"), "center").set_text('Bumper score : '+str(self.game.utilities.get_player_stats('bumper_score')))

		self.layer_4 = dmd.GroupedLayer(128, 32, [self.title_layer_4a, self.title_layer_4b])


                return [self.layer_0, self.layer_1, self.layer_2, self.layer_3, self.layer_4]
	def __init__(self, font, font_path, text):
		fonts = {
			"plain": dmd.font_named("04B-03-7px.dmd"),
			"Font18x12": dmd.font_named("Font18x12.dmd"),
			"Font18x11": dmd.font_named("Font18x11.dmd"),
			"Font18x10": dmd.font_named("Font18x10.dmd"),
			"Font14x10": dmd.font_named("Font14x10.dmd"),
			"Font14x9": dmd.font_named("Font14x9.dmd"),
			"Font14x8": dmd.font_named("Font14x8.dmd"),
			"Font09x5": dmd.font_named("Font09x5.dmd"),
			"Font09x6": dmd.font_named("Font09x6.dmd"),
			"Font09x7": dmd.font_named("Font09x7.dmd"),
		}
		super(DmdFontWidthsGame, self).__init__(pinproc.MachineTypeCustom, fonts)
		self.reset()
		w = 128
		h = 32
		self.font = font
		self.font_path = font_path
		self.text = text
		self.text_layer = dmd.TextLayer(0, 0, font)
		self.text_layer.set_text(text)
		mode = game.Mode(game=self, priority=9)
		mode.layer = dmd.GroupedLayer(w, h, [dmd.FrameLayer(frame=dmd.Frame(w, h)), self.text_layer])
		self.modes.add(mode)
		self.dirty = False
Пример #3
0
	def __init__(self, width=128, min_height=32, animation_library=None):
		self.width = width
		self.min_height = min_height
		self.frame = None
		self.animation_library = animation_library

		self.font_plain = font_named('Font07x5.dmd')
		self.font_bold = font_named('Font09Bx7.dmd')
Пример #4
0
        def reset(self):
            self.text1a_layer = dmd.TextLayer(64, 1, font_named("04B-03-7px.dmd"), "center", opaque=False).set_text("Choose game with flippers")
            self.text1b_layer = dmd.TextLayer(64, 9, font_named("04B-03-7px.dmd"), "center", opaque=False).set_text("then press start to select")

            self.text2_layer = dmd.TextLayer(64, 18, font_named("04B-03-7px.dmd"), "center", opaque=False)
            self.text3_layer = dmd.TextLayer(64, 25, font_named("04B-03-7px.dmd"), "center", opaque=False)

            self.layer = dmd.GroupedLayer(128, 32, [self.text3_layer,self.text2_layer, self.text1a_layer, self.text1b_layer])#set clear time
Пример #5
0
 def display_text(self,txt,txt2=None,time=2,blink=2):
     if txt2==None:
         self.layer = dmd.TextLayer(128/2, 7, font_named("beware11.dmd"), "center", opaque=True).set_text(txt,seconds=time,blink_frames=blink)
     else:
         self.press_layer = dmd.TextLayer(128/2, -5, font_named("beware20aa.dmd"), "center").set_text(txt,seconds=time)
         self.start_layer = dmd.TextLayer(128/2, 10, font_named("beware20aa.dmd"), "center").set_text(txt2,seconds=time, blink_frames=blink)
         self.start_layer.composite_op = 'blacksrc'
         self.layer = dmd.GroupedLayer(128, 32, [self.press_layer,self.start_layer])
     self.delay(name='dmdoff',event_type=None,delay=time,handler=self.display_clear)
Пример #6
0
 def reset(self):
     self.title_layer = dmd.TextLayer(64, 1, font_named('Font_CC_12px_az.dmd'), "center", opaque=False)
     font = font_named("04B-03-7px.dmd")
     self.text1_layer = dmd.TextLayer(64, 1, font, "center", opaque=False)
     self.text2_layer = dmd.TextLayer(64, 9, font, "center", opaque=False)
     self.text3_layer = dmd.TextLayer(64, 17, font, "center", opaque=False)
     self.text4_layer = dmd.TextLayer(64, 25, font, "center", opaque=False)
     self.layer = dmd.GroupedLayer(128, 32, [self.text4_layer, self.text3_layer,
         self.text2_layer, self.text1_layer, self.title_layer])
Пример #7
0
 def reset(self):
     # if changing this font, adjust the row as necessary to avoid clipping top of title
     self.title_layer = dmd.TextLayer(64, -2, font_named('Font_CC_12px_az.dmd'), "center", opaque=False)
     font = font_named("04B-03-7px.dmd")
     self.text1_layer = dmd.TextLayer(64, 0, font, "center", opaque=False)
     self.text2_layer = dmd.TextLayer(64, 8, font, "center", opaque=False)
     self.text3_layer = dmd.TextLayer(64, 16, font, "center", opaque=False)
     self.text4_layer = dmd.TextLayer(64, 24, font, "center", opaque=False)
     self.layer = dmd.GroupedLayer(128, 32, [self.text4_layer, self.text3_layer,
         self.text2_layer, self.text1_layer, self.title_layer])
Пример #8
0
	def __init__(self, game, priority):
		super(Mystery, self).__init__(game, priority)
		self.title_layer = dmd.TextLayer(128/2, 7, font_named("04B-03-7px.dmd"), "center")
		self.element_layer = dmd.TextLayer(128/2, 15, font_named("04B-03-7px.dmd"), "center")
		self.value_layer = dmd.TextLayer(128/2, 22, font_named("04B-03-7px.dmd"), "center")
		self.layer = dmd.GroupedLayer(128, 32, [self.title_layer,self.element_layer, self.value_layer])
		self.awards = ['Light Extra Ball', 'Light Lock', '30000 Points', 'Bonus X+1', 'Hold Bonus X', 'Quick Multiball']
		self.awards_allow_repeat = [False, True, True, True, False, False]
		self.awards_remaining = self.awards[:]
		self.delay_time = 0.200
		self.award_ptr = 0
		self.award_ptr_adj = 0
		self.title_layer.set_text("Sortie Award")
		self.element_layer.set_text("Left Flipper collects:")
		self.active = False
Пример #9
0
	def __init__(self, game, priority):
		super(Info, self).__init__(game, priority)
		self.title_layer = dmd.TextLayer(128/2, 1, font_named("04B-03-7px.dmd"), "center").set_text('SECOND SORTIE - INSTANT INFO')
		#self.item_layer = dmd.TextLayer(128/2, 15, self.game.fonts['tiny7'], "center")
		#self.value_layer = dmd.TextLayer(128/2, 23, self.game.fonts['tiny7'], "center")

		self.info_layer = dmd.GroupedLayer(128, 32, [self.title_layer])
Пример #10
0
	def total(self):
                self.log.info('Total')
                self.fourth_layer = dmd.TextLayer(26, 26, font_named("Font_CC_5px_az.dmd")).set_text("TOTAL         "+str(self.total_value))
                self.fourth_layer.composite_op = 'blacksrc'
                
                self.layer = dmd.GroupedLayer(128, 32, [self.first_layer,self.second_layer,self.third_layer,self.fourth_layer])
		self.game.utilities.score(self.total_value) # this should upadte the player score in question
		self.delay(name='next_frame', event_type=None, delay=self.delay_time, handler=self.finish)		
Пример #11
0
	def bonus(self):
		self.log.info('Initial Bonus')
                self.second_layer = dmd.TextLayer(26, 14, font_named("Font_CC_5px_az.dmd")).set_text("BONUS        "+str(self.game.utilities.get_player_stats('bonus') * self.bonus_value))
                self.second_layer.composite_op = 'blacksrc'

                self.layer = dmd.GroupedLayer(128, 32, [self.first_layer,self.second_layer])
                self.game.utilities.acFlashSchedule(coilname='upKicker_flasher3',schedule=0x0000000C, cycle_seconds=1, now=True)
		self.delay(name='next_frame', event_type=None, delay=self.delay_time, handler=self.multiplier)
Пример #12
0
        def mode_started(self):
            self.change_lampshow()
            anim = dmd.Animation().load("./dmd/f14launch.dmd")
            self.takeoff_layer = dmd.AnimatedLayer(frames=anim.frames, hold=False, repeat=False, frame_time=5)
            
	    self.f14_splash_layer = dmd.FrameLayer(opaque=True, frame=dmd.Animation().load('./dmd/f14bw2.dmd').frames[0])
            self.f14_sunset_layer = dmd.FrameLayer(opaque=True, frame=dmd.Animation().load('./dmd/f14sun.dmd').frames[0])
            self.f14_layer = dmd.FrameLayer(opaque=True, frame=dmd.Animation().load('./dmd/tomcat20beware.dmd').frames[0])

            self.press_layer = dmd.TextLayer(128/2, -8, font_named("beware22aa.dmd"), "center").set_text("PRESS")
            self.start_layer = dmd.TextLayer(128/2, 8, font_named("beware22aa.dmd"), "center").set_text("START")
            self.start_layer.composite_op = 'blacksrc'
            self.press_start_layer = dmd.GroupedLayer(128, 32, [self.press_layer,self.start_layer])
            gen = dmd.MarkupFrameGenerator()
            gen.font_plain=font_named("beware11.dmd")
            gen.font_bold=font_named("beware20aa.dmd")
            credits_frame = gen.frame_for_markup("""

#CREDITS#

[Rules + Coding]
[Mark Sunnucks]

[Special thanks]
[G. Stellenberg]
[A. Preble]
[S. van der Staaij]

[P-ROC]
[pyprocgame]

""")

            self.credits_layer = dmd.PanningLayer(width=128, height=32, frame=credits_frame, origin=(0,0), translate=(0,1), bounce=False)
            self.credits_layer.composite_op = 'blacksrc'
            self.credits_overlay_layer = dmd.GroupedLayer(128, 32, [self.takeoff_layer,self.credits_layer])
            script = [{'seconds':5.0, 'layer':self.f14_splash_layer},
		          {'seconds':5.0, 'layer':self.press_start_layer},
			  {'seconds':20.0, 'layer':self.credits_overlay_layer},
                          {'seconds':5.0, 'layer':self.f14_sunset_layer},
                          {'seconds':5.0, 'layer':self.press_start_layer}]
                          
            self.layer = dmd.ScriptedLayer(width=128, height=32, script=script)
Пример #13
0
 def show_next_game(self,direction=0):
     self.gi_enable(dim=False)
     if self.selected_game is None:
         # from title, go to either 0 (first) or -1 (last) game/config
         self.game_index = self.config_index = 0 if direction > 0 else -1
         if self.game.lamps.has_key('startButton'):
             self.game.lamps.startButton.schedule(schedule=0xff00ff00, cycle_seconds=0, now=False)
     else:
         self.config_index += direction
     
         # If the user goes "left" of the first config, roll to the last
         # config of the previous game
         if self.config_index == -1:
             self.game_index -= 1
             # note that we need to load the configs for this new game_index
             # before we can set config_index to the last configuration
             
         # If we have gone past the last config, roll over to the first
         # configuration of the next game.
         elif self.config_index == len(self.configs):
             self.game_index += 1
             self.config_index = 0
     
     # use the modulus operator to wrap-around game_index
     self.game_index = self.game_index % len(self.games)
     
     self.selected_game = self.games[self.game_index]
     if self.selected_game.has_key('configuration'):
         self.configs = self.selected_game['configuration']
     else:
         self.configs = [{'description': 'default configuration'}]
     
     if self.config_index == -1:
         # We can now select the last configuration of the newly-selected game.
         self.config_index = len(self.configs) - 1
     
     self.selected_config = self.configs[self.config_index]
     
     # Update the DMD screen to describe the current game/config option.
     self.text1_layer.set_text(self.selected_game['line1'])
     self.text2_layer.set_text(self.selected_game['line2'])
     self.text3_layer.set_text(self.selected_config['description'])
     scores = self.load_gc()
     if len(scores) == 0:
         scores = ['']
     layer_script = []
     for s in scores:
         l = dmd.TextLayer(64, 24, font_named("04B-03-7px.dmd"), "center", opaque=False)
         l.set_text(s)
         layer_script.append({'seconds':2.5,
             'layer':dmd.GroupedLayer(128, 32, [l, self.text3_layer,
                 self.text2_layer, self.text1_layer])})
     self.layer = dmd.ScriptedLayer(width=128, height=32, script=layer_script)
Пример #14
0
 def move_target(self):
     #self.game.lamps[self.game.tomcatTargetIndex[self.current_position]].disable()
     self.current_position += random.choice([-1,1])
     if self.current_position == 12:
         self.current_position = 0
     elif self.current_position == -1:
         self.current_position = 11
     #self.game.lamps[self.game.tomcatTargetIndex[self.current_position]].enable()
     mission_text = list("------------")
     mission_text[self.current_position] = '+'
     self.third_layer= dmd.TextLayer(128/2, 24, font_named("Font_CC_7px_az.dmd"), "center").set_text(''.join(mission_text))
     self.layer = dmd.GroupedLayer(128, 32, [self.first_layer,self.second_layer,self.third_layer])
     self.delay(name='move_target',delay=self.target_speed,handler=self.move_target)
     self.update_lamps()
Пример #15
0
        def mode_started(self):
            self.active = True
            self.log.info("kill 1 starting")
            self.game.utilities.set_player_stats('mission_in_progress','kill1')
            self.game.utilities.set_player_stats('kill1',1)
            self.game.update_lamps()
            for target in self.tomcatTargets:
                self.tomcatTargets[target]=False
            self.game.utilities.arduino_write_alpha(display=2,text='FUEL')
            self.game.utilities.arduino_write_number(display=0,number=960)
            self.game.utilities.arduino_start_count(display=0,direction=1,limit=0,ticks=1)
            self.current_position = random.randint(0,11)
            anim = dmd.Animation().load("/P-ROC/games/F14SecondSortie/assets/dmd/alpha2.dmd")
            self.first_layer = dmd.AnimatedLayer(frames=anim.frames, hold=False, repeat=True, frame_time=4)

            self.second_layer = dmd.TextLayer(128/2, 14, font_named("Font_CC_5px_az.dmd"),"center").set_text("SHOOT THE MOVING TARGET")
            self.third_layer = dmd.TextLayer(128/2, 20, font_named("Font_CC_5px_az.dmd"),"center").set_text("BEFORE FUEL RUNS OUT")
            self.second_layer.composite_op = 'blacksrc'
            self.third_layer.composite_op = 'blacksrc'

            self.layer = dmd.GroupedLayer(128, 32, [self.first_layer,self.second_layer,self.third_layer])
            self.delay(name='move_target',delay=3,handler=self.move_target)
            self.delay(name='fuel_out',delay=30,handler=self.fuel_out)
Пример #16
0
 def play_animation(self, file, frametime=2, txt=None, txtPos='over', seconds=2):
     if txt == None:
         self.layer = self.game.animations[file]
     elif txtPos == 'over':
         self.anim_layer = self.game.animations[file]
         # self.text_layer = dmd.TextLayer(128/2, 26, font_named("Font_CC_5px_az.dmd"),width=100,height=8,fill_color=10, justify="center").set_text(txt,seconds=2)
         self.text_layer = dmd.TextLayer(128 / 2, 26, font_named("Font_CC_5px_az.dmd"), width=128, height=8,
                                         justify="center").set_text(txt, seconds=seconds)
         # self.text_layer.composite_op = 'blacksrc'
         self.layer = dmd.GroupedLayer(128, 32, [self.anim_layer, self.text_layer])
     elif txtPos == 'after':
         self.after_text = txt
         self.layer_build = self.game.animations[file]
         self.layer_build.add_frame_listener(-1, self.display_text_after_anim)
         self.layer = self.layer_build
Пример #17
0
    def setDisplayContent(self):
        #### Script List Variable Initialization ####
        self.log.info("Gets scores")
        self.player1Score = self.game.game_data['LastGameScores']['LastPlayer1Score']
        self.player2Score = self.game.game_data['LastGameScores']['LastPlayer2Score']
        self.player3Score = self.game.game_data['LastGameScores']['LastPlayer3Score']
        self.player4Score = self.game.game_data['LastGameScores']['LastPlayer4Score']

        self.log.info("Get f14launch")
        #anim = dmd.Animation().load("/P-ROC/games/F14SecondSortie/assets/dmd/f14launch.dmd")
                #self.takeoff_layer = dmd.AnimatedLayer(frames=anim.frames, hold=False, repeat=False, frame_time=5)
        self.takeoff_layer = self.game.animations['credit_background']
        anim2 = dmd.Animation().load("/P-ROC/games/F14SecondSortie/assets/dmd/alpha2.dmd")
        self.first_layer = self.game.animations['second_sortie_rotate']



        self.second_layer = dmd.TextLayer(128/2, 14, font_named("Font_CC_5px_az.dmd"),"center").set_text("SHOOT THE MOVING TARGET")
        self.third_layer = dmd.TextLayer(128/2, 20, font_named("Font09x7.dmd"),"center").set_text("BEFORE FUEL RUNS OUT")
        self.second_layer.composite_op = 'blacksrc'
        self.third_layer.composite_op = 'blacksrc'

        #self.f14_splash_layer = dmd.GroupedLayer(128, 32, [self.first_layer,self.second_layer,self.third_layer])
        self.f14_splash_layer = self.first_layer
        #self.f14_splash_layer = dmd.FrameLayer(opaque=True, frame=dmd.Animation().load('/P-ROC/games/F14SecondSortie/assets/dmd/f14bw2.dmd').frames[0])
        self.f14_sunset_layer = dmd.FrameLayer(opaque=True, frame=dmd.Animation().load('/P-ROC/games/F14SecondSortie/assets/dmd/f14_logo.png').frames[0])
        self.f14_layer = dmd.FrameLayer(opaque=True, frame=dmd.Animation().load('/P-ROC/games/F14SecondSortie/assets/dmd/tomcat20beware.dmd').frames[0])

        self.press_layer = dmd.HDTextLayer(1200/2, 50, hdfont_named("BlackoakStd",30), "center", opaque=True,line_color=(132,132,132), line_width=1, interior_color=(128,255,128)).set_text("PRESS")
        self.start_layer = dmd.HDTextLayer(1200/2, 100, hdfont_named("BlackoakStd",30), "center",line_color=(132,132,132), line_width=1, interior_color=(128,255,128)).set_text("START")
        self.press_layer.composite_op = 'blacksrc'
        self.press_start_layer = dmd.GroupedLayer(1200, 600, [self.press_layer,self.start_layer], opaque=True)

        self.second_layer = dmd.TextLayer(1200/2, 50, hdfont_named("BlackoakStd",30), "center").set_text("SECOND")
        self.sortie_layer = dmd.TextLayer(1200/2, 100, hdfont_named("BlackoakStd",30), "center").set_text("SORTIE")
        self.second_layer.composite_op = 'blacksrc'
        self.second_sortie_layer = dmd.GroupedLayer(1200, 600, [self.second_layer,self.sortie_layer])
                
        gen = dmd.MarkupFrameGenerator(width=1200)
        #gen.font_plain=hdfont_named("Beware",25)
        gen.font_bold=hdfont_named("Beware",120)


        gen.set_plain_font(hdfont_named("BlackoakStd", 45), interior_color=[255,0,0], border_width=1, border_color=[255,255,255])
        gen.set_bold_font(hdfont_named("BlackoakStd", 60), interior_color=[0, 0, 255], border_width=1, border_color=[255,255,255])
        credits_frame = gen.frame_for_markup("""


#F-14 CREDITS#

[Rules + Coding]
[Mark Sunnucks]

[Special thanks]
[G. Stellenberg]
[A. Preble]
[S. v/d Staaij]
[M. Ocean]
[S. Danesi]


""")

        self.credits_layer = dmd.PanningLayer(width=1200, height=600, frame=credits_frame, origin=(0,0), translate=(0,1), bounce=False)
        self.credits_layer.composite_op = 'blacksrc'
        self.credits_overlay_layer = dmd.GroupedLayer(1200, 600, [self.takeoff_layer,self.credits_layer])
        script = [{'seconds':5.0, 'layer':self.second_sortie_layer},
                    {'seconds':5.0, 'layer':self.f14_splash_layer},
                      {'seconds':5.0, 'layer':self.press_start_layer},
                      {'seconds':20.0, 'layer':self.credits_overlay_layer},
                      {'seconds':5.0, 'layer':self.f14_sunset_layer},
                      {'seconds':5.0, 'layer':self.press_start_layer}]

        self.layer = dmd.ScriptedLayer(width=1200, height=600, script=script, opaque=True)
Пример #18
0
	def __init__(self, width=128, min_height=32):
		self.width = width
		self.min_height = min_height
		self.frame = None
		self.font_plain = font_named('Font07x5.dmd')
		self.font_bold = font_named('Font09Bx7.dmd')
Пример #19
0
 def __init__(self, width=128, min_height=32):
     self.width = width
     self.min_height = min_height
     self.frame = None
     self.font_plain = font_named('Font07x5.dmd')
     self.font_bold = font_named('Font09Bx7.dmd')
Пример #20
0
    def load(self):
        anims = self.value_for_key_path(keypath='Animations',
                                        default={}) or list()
        fonts = self.value_for_key_path(keypath='Fonts', default={}) or list()
        hfonts = value_for_key(fonts, 'HDFonts', {}) or list()
        rfonts = value_for_key(fonts, 'DMDFonts', {}) or list()
        fontstyles = value_for_key(fonts, 'FontStyles', {}) or list()
        lamps = self.value_for_key_path(keypath='LampShows',
                                        default={}) or list()
        sounds = self.value_for_key_path(keypath='Audio', default={}) or list()
        music = value_for_key(sounds, 'Music', {}) or list()
        effects = value_for_key(sounds, 'Effects', {}) or list()
        voice = value_for_key(sounds, 'Voice', {}) or list()

        # self.total = str(len(anims)+len(hfonts)+len(rfonts)+len(music)+len(effects)+len(voice))
        self.total = (len(lamps) + len(fontstyles) + len(anims) + len(hfonts) +
                      len(rfonts) + len(music) + len(effects) + len(voice))

        try:
            current = ""
            for l in lamps:
                k = value_for_key(l, 'key')
                fname = value_for_key(l, 'file')
                self.updateProgressBar("Lampshows", fname)
                # self.lampshows = self.game.sound.register_music(k,self.game.music_path+fname, volume=volume)
                f = self.game.lampshow_path + fname
                current = 'Lampshow: [%s]: %s, %s ' % (k, f, fname)
                self.game.lampctrl.register_show(k, f)

                # Validate the lampshow --as best as possible
                self.game.lampctrl.show.load(f, False, None)
                for tr in self.game.lampctrl.show.lampshow.tracks:
                    if tr.driver == None:  # Check drivers.
                        tr.resolve_driver_with_game(self.game)
                    if tr.driver == None:
                        raise ValueError, "Name '%s' specified in lampshow does not match a driver in the machine yaml." % tr.name

                self.numLoaded += 1
            for f in hfonts:
                k = value_for_key(f, 'key')
                sname = value_for_key(f, 'systemName', k)
                size = value_for_key(f, 'size')
                file_path = value_for_key(f, 'file', None)
                self.updateProgressBar("HD Fonts", sname)
                current = 'HD font: [%s]: %s, %d ' % (k, sname, size)

                if (file_path is not None):
                    file_path = self.game.hdfont_path + file_path
                    if (not os.path.isfile(file_path)):
                        raise ValueError, "Could not load font as specified in yaml\n %s\n File [%s] does not exist." % (
                            current, file_path)

                self.fonts[k] = dmd.hdfont_named(sname,
                                                 size,
                                                 font_file_path=file_path)
                self.numLoaded += 1

            for f in rfonts:
                k = value_for_key(f, 'key')
                fname = value_for_key(f, 'file')
                self.updateProgressBar("DMD Fonts", fname)
                current = 'Font: [%s]: %s ' % (k, fname)
                self.fonts[k] = dmd.font_named(fname)
                self.numLoaded += 1

            for f in fontstyles:
                ic = value_for_key(f, 'interior_color')
                lc = value_for_key(f, 'line_color')
                lw = value_for_key(f, 'line_width')
                k = value_for_key(f, 'key')
                font_style = dmd.HDFontStyle(interior_color=ic,
                                             line_width=lw,
                                             line_color=lc)
                self.fontstyles[k] = font_style

            for anim in anims:
                k = value_for_key(anim, 'key')
                ft = value_for_key(anim, 'frame_time', 2)
                f = value_for_key(anim, 'file')
                r = value_for_key(anim, 'repeatAnim', False)
                h = value_for_key(anim, 'holdLastFrame', False)
                o = value_for_key(anim, 'opaque', False)
                c = value_for_key(anim, 'composite_op')
                x = value_for_key(anim, 'x_loc', 0)
                y = value_for_key(anim, 'y_loc', 0)
                streaming_load = value_for_key(anim, 'streamingMovie', False)
                current = 'Animation: [%s]: %s' % (k, f)
                self.loadIntoCache(k, ft, f, r, h, o, c, x, y, streaming_load)

        except:
            self.logger.error("===ASSET MANAGER - ASSET FAILURE===")
            self.logger.error(current)
            self.logger.error("======")
            raise

        for s in music:
            k = value_for_key(s, 'key')
            fname = value_for_key(s, 'file')
            volume = value_for_key(s, 'volume', .5)
            streaming_load = value_for_key(s, 'streaming_load', True)
            self.updateProgressBar("Audio: Music", fname)
            self.game.sound.register_music(
                k, self.game.music_path + fname,
                volume=volume)  #, streaming_load=streaming_load)
            self.numLoaded += 1

        for s in effects:
            k = value_for_key(s, 'key')
            fname = value_for_key(s, 'file')
            volume = value_for_key(s, 'volume', .5)
            is_voice = value_for_key(s, 'voice', False)
            self.updateProgressBar("Audio SFX", fname)
            self.game.sound.register_sound(k,
                                           self.game.sfx_path + fname,
                                           volume=volume,
                                           is_voice=is_voice)
            self.numLoaded += 1

        for s in voice:
            k = value_for_key(s, 'key')
            fname = value_for_key(s, 'file')
            volume = value_for_key(s, 'volume', .5)
            self.updateProgressBar("Audio Voices", fname)
            self.game.sound.register_sound(k,
                                           self.game.voice_path + fname,
                                           volume=volume,
                                           is_voice=True)
            self.numLoaded += 1
    def load(self):
        l = logging.getLogger("PIL.PngImagePlugin")
        l.setLevel(logging.WARNING)
        l = logging.getLogger("game.assets")
        l.setLevel(logging.WARNING)        
        l = logging.getLogger("game.sound")
        l.setLevel(logging.WARNING)        
        l = logging.getLogger("game.dmdcache")
        l.setLevel(logging.WARNING)        
        anims = self.value_for_key_path(keypath='Animations', default={}) or list()
        fonts = self.value_for_key_path(keypath='Fonts', default={}) or list()
        hfonts = value_for_key(fonts,'HDFonts',{}) or list()
        rfonts = value_for_key(fonts,'DMDFonts',{}) or list()
        fontstyles = value_for_key(fonts,'FontStyles',{}) or list()
        lamps = self.value_for_key_path(keypath='LampShows', default={}) or list() 
        rgbshows = self.value_for_key_path(keypath='RGBShows', default={}) or list() 
        sounds = self.value_for_key_path(keypath='Audio', default={}) or list()
        music = value_for_key(sounds,'Music',{}) or list()
        effects = value_for_key(sounds,'Effects',{}) or list() 
        voice = value_for_key(sounds,'Voice',{}) or list()
        
        paths = self.value_for_key_path(keypath='AssetListFiles', default={}) or list()
        #if there was a list of files to load, then load those
        for path in paths:
            self.loaded_assets_files.append(path)
            self.values = yaml.load(open(path, 'r'))
            anims += self.value_for_key_path(keypath='Animations', default={}) or list()
            fonts = self.value_for_key_path(keypath='Fonts') or list()
            hfonts += value_for_key(fonts,'HDFonts',{}) 
            rfonts += value_for_key(fonts,'DMDFonts',{}) or list()
            fontstyles += value_for_key(fonts,'FontStyles',{}) or list()
            lamps += self.value_for_key_path(keypath='LampShows', default={}) or list() 
            rgbshows += self.value_for_key_path(keypath='RGBShows', default={}) or list() 
            sounds = self.value_for_key_path(keypath='Audio', default={}) or list()
            music += value_for_key(sounds,'Music',{}) or list()
            effects += value_for_key(sounds,'Effects',{}) or list() 
            voice += value_for_key(sounds,'Voice',{}) or list()

        # self.total = str(len(anims)+len(hfonts)+len(rfonts)+len(music)+len(effects)+len(voice))
        self.total = (len(lamps) + len(fontstyles) + len(anims)+len(hfonts)+len(rfonts)+len(music)+len(effects)+len(voice))

        try:
            current = ""            
            for l in lamps:
                k  = value_for_key(l,'key')
                fname = value_for_key(l,'file')
                self.updateProgressBar("Lampshows", fname)
                f = self.game.lampshow_path + fname
                current = 'Lampshow: [%s]: %s, %s ' % (k, f, fname)
                self.game.lampctrl.register_show(k, f)

                # Validate the lampshow --as best as possible
                self.game.lampctrl.show.load(f, False, None)
                for tr in self.game.lampctrl.show.lampshow.tracks:
                    if tr.driver == None: # Check drivers.
                        tr.resolve_driver_with_game(self.game)
                    if tr.driver == None:
                        raise ValueError, "Name '%s' specified in lampshow does not match a driver in the machine yaml." % tr.name

                self.numLoaded += 1            

            for l in rgbshows:
                k  = value_for_key(l,'key')
                fname = value_for_key(l,'file')
                self.updateProgressBar("RGBShows", fname)
                f = self.game.lampshow_path + fname
                current = 'RGBshow: [%s]: %s, %s ' % (k, f, fname)
                self.game.rgbshow_player.load(k, f)
                self.numLoaded += 1            

            for f in hfonts:
                k  = value_for_key(f,'key')
                sname = value_for_key(f,'systemName',k)
                size  = value_for_key(f,'size')
                file_path = value_for_key(f, 'file', None)
                self.updateProgressBar("HD Fonts", sname)
                current = 'HD font: [%s]: %s, %d ' % (k, sname, size)

                if(file_path is not None):
                    file_path = self.game.hdfont_path + file_path
                    if(not os.path.isfile(file_path)):
                        raise ValueError, "Could not load font as specified in yaml\n %s\n File [%s] does not exist." % (current, file_path)


                self.fonts[k] = dmd.hdfont_named(sname,size, font_file_path=file_path)
                self.numLoaded += 1

            for f in rfonts:
                k  = value_for_key(f,'key')
                fname = value_for_key(f,'file')
                self.updateProgressBar("DMD Fonts", fname)
                current = 'Font: [%s]: %s ' % (k, fname)
                self.fonts[k] = dmd.font_named(fname)
                self.numLoaded += 1

            for f in fontstyles:
                ic = value_for_key(f, 'interior_color')
                lc = value_for_key(f, 'line_color')
                lw = value_for_key(f, 'line_width')
                k = value_for_key(f, 'key')
                font_style = dmd.HDFontStyle( interior_color=ic, 
                                        line_width=lw, 
                                        line_color=lc )
                self.fontstyles[k] = font_style

            for anim in anims:
                k  = value_for_key(anim,'key')
                ft = value_for_key(anim,'frame_time',2)
                f  = value_for_key(anim,'file')
                r  = value_for_key(anim,'repeatAnim',False)
                h  = value_for_key(anim,'holdLastFrame',False)
                o  = value_for_key(anim,'opaque',False)
                c  = value_for_key(anim,'composite_op')
                x  = value_for_key(anim, 'x_loc', 0)
                y  = value_for_key(anim, 'y_loc', 0)
                streaming_load  = value_for_key(anim, 'streamingMovie', False)
                current = 'Animation: [%s]: %s' % (k, f)
                # started = timeit.time.time()
                started = timeit.time.time()
                self.loadIntoCache(k,ft,f,r,h,o,c,x,y,streaming_load)
                time_taken = timeit.time.time() - started
                self.logger.info("loading visual asset took %.3f seconds" % time_taken)
        except:
            self.logger.error("===ASSET MANAGER - ASSET FAILURE===")
            self.logger.error(current)
            self.logger.error("======")
            raise

        for s in music:
            k  = value_for_key(s,'key')
            fname = value_for_key(s,'file')
            volume = value_for_key(s,'volume',.5)
            streaming_load = value_for_key(s,'streaming_load',True)
            self.updateProgressBar("Audio: Music", fname)
            self.game.sound.register_music(k,self.game.music_path+fname, volume=volume) #, streaming_load=streaming_load)
            self.numLoaded += 1

        for s in effects:
            k  = value_for_key(s,'key')
            fname = value_for_key(s,'file')
            volume = value_for_key(s,'volume',.5)
            is_voice = value_for_key(s, 'voice', False)
            self.updateProgressBar("Audio SFX", fname)
            self.game.sound.register_sound(k,self.game.sfx_path+fname, volume=volume, is_voice=is_voice)
            self.numLoaded += 1

        for s in voice:
            k  = value_for_key(s,'key')
            fname = value_for_key(s,'file')
            volume = value_for_key(s,'volume',.5)
            self.updateProgressBar("Audio Voices", fname)
            self.game.sound.register_sound(k,self.game.voice_path+fname, volume=volume, is_voice=True)
            self.numLoaded += 1
Пример #22
0
	def multiplier(self):
                self.log.info('Multiplier')
                self.third_layer = dmd.TextLayer(26, 20, font_named("Font_CC_5px_az.dmd")).set_text("MULTIPLIER   X"+str(self.game.utilities.get_player_stats('bonus_x')))
                self.third_layer.composite_op = 'blacksrc'
                self.layer = dmd.GroupedLayer(128, 32, [self.first_layer,self.second_layer,self.third_layer])
                self.delay(name='next_frame', event_type=None, delay=self.delay_time, handler=self.total)
Пример #23
0
import pinproc
import time
import trough
import player
import ramps
import effects
import F14modes

import attract

import locale
locale.setlocale(locale.LC_ALL, "") # Used to put commas in the score.
fnt_path = "/shared/dmd/"
sound_path = "./sound/"
font_14x10 = font_named('Font14x10.dmd')
font_jazz18 = font_named("Jazz18-18px.dmd")

lampshow_files = ["./lamps/sweepleftright.lampshow", \
#                  "./lamps/f14fireright.lampshow", \
#                  "./lamps/sweepleftright.lampshow", \
                 ]

class BaseGameMode(game.Mode):
	"""A mode that runs whenever the game is in progress."""
	def __init__(self, game):
		super(BaseGameMode, self).__init__(game=game, priority=1)
                self.yagovHurryUpActive=False
                self.rescue={}
                self.bonusXRight = 'off'
                self.bonusXLeft = 'off'
Пример #24
0
 def reset(self):
     self.text1a_layer = dmd.TextLayer(64, 1, font_named("04B-03-7px.dmd"), "center", opaque=False).set_text(self.instructions_line_1)
     self.text1b_layer = dmd.TextLayer(64, 9, font_named("04B-03-7px.dmd"), "center", opaque=False).set_text(self.instructions_line_2)
     self.text2_layer = dmd.TextLayer(64, 18, font_named("04B-03-7px.dmd"), "center", opaque=False)
     self.text3_layer = dmd.TextLayer(64, 25, font_named("04B-03-7px.dmd"), "center", opaque=False)
     self.layer = dmd.GroupedLayer(128, 32, [self.text3_layer,self.text2_layer, self.text1a_layer, self.text1b_layer])#set clear time
    def load(self):
        anims = self.value_for_key_path(keypath='Animations', default={}) or list()
        fonts = self.value_for_key_path(keypath='Fonts', default={}) or list()
        hfonts = value_for_key(fonts,'HDFonts',{}) or list()
        rfonts = value_for_key(fonts,'DMDFonts',{}) or list()
        fontstyles = value_for_key(fonts,'FontStyles',{}) or list()
        lamps = self.value_for_key_path(keypath='LampShows', default={}) or list() 
        sounds = self.value_for_key_path(keypath='Audio', default={}) or list()
        music = value_for_key(sounds,'Music',{}) or list()
        effects = value_for_key(sounds,'Effects',{}) or list() 
        voice = value_for_key(sounds,'Voice',{}) or list()
        
        # self.total = str(len(anims)+len(hfonts)+len(rfonts)+len(music)+len(effects)+len(voice))
        self.total = (len(lamps) + len(fontstyles) + len(anims)+len(hfonts)+len(rfonts)+len(music)+len(effects)+len(voice))

        try:
            current = ""            
            for l in lamps:
                k  = value_for_key(l,'key')
                fname = value_for_key(l,'file')
                self.updateProgressBar("Lampshows", fname)
                # self.lampshows = self.game.sound.register_music(k,self.game.music_path+fname, volume=volume)            
                f = self.game.lampshow_path + fname
                current = 'Lampshow: [%s]: %s, %s ' % (k, f, fname)
                self.game.lampctrl.register_show(k, f)

                # Validate the lampshow --as best as possible
                self.game.lampctrl.show.load(f, False, None)
                for tr in self.game.lampctrl.show.lampshow.tracks:
                    if tr.driver == None: # Check drivers.
                        tr.resolve_driver_with_game(self.game)
                    if tr.driver == None:
                        raise ValueError, "Name '%s' specified in lampshow does not match a driver in the machine yaml." % tr.name

                self.numLoaded += 1            
            for f in hfonts:
                k  = value_for_key(f,'key')
                sname = value_for_key(f,'systemName',k)
                size  = value_for_key(f,'size')
                file_path = value_for_key(f, 'file', None)
                self.updateProgressBar("HD Fonts", sname)
                current = 'HD font: [%s]: %s, %d ' % (k, sname, size)

                if(file_path is not None):
                    file_path = self.game.hdfont_path + file_path
                    if(not os.path.isfile(file_path)):
                        raise ValueError, "Could not load font as specified in yaml\n %s\n File [%s] does not exist." % (current, file_path)


                self.fonts[k] = dmd.hdfont_named(sname,size, font_file_path=file_path)
                self.numLoaded += 1

            for f in rfonts:
                k  = value_for_key(f,'key')
                fname = value_for_key(f,'file')
                self.updateProgressBar("DMD Fonts", fname)
                current = 'Font: [%s]: %s ' % (k, fname)
                self.fonts[k] = dmd.font_named(fname)
                self.numLoaded += 1

            for f in fontstyles:
                ic = value_for_key(f, 'interior_color')
                lc = value_for_key(f, 'line_color')
                lw = value_for_key(f, 'line_width')
                k = value_for_key(f, 'key')
                font_style = dmd.HDFontStyle( interior_color=ic, 
                                        line_width=lw, 
                                        line_color=lc )
                self.fontstyles[k] = font_style

            for anim in anims:
                k  = value_for_key(anim,'key')
                ft = value_for_key(anim,'frame_time',2)
                f  = value_for_key(anim,'file')
                r  = value_for_key(anim,'repeatAnim',False)
                h  = value_for_key(anim,'holdLastFrame',False)
                o  = value_for_key(anim,'opaque',False)
                c  = value_for_key(anim,'composite_op')
                x  = value_for_key(anim, 'x_loc', 0)
                y  = value_for_key(anim, 'y_loc', 0)
                streaming_load  = value_for_key(anim, 'streamingMovie', False)
                current = 'Animation: [%s]: %s' % (k, f)
                self.loadIntoCache(k,ft,f,r,h,o,c,x,y,streaming_load)

        except:
            self.logger.error("===ASSET MANAGER - ASSET FAILURE===")
            self.logger.error(current)
            self.logger.error("======")
            raise

        for s in music:
            k  = value_for_key(s,'key')
            fname = value_for_key(s,'file')
            volume = value_for_key(s,'volume',.5)
            self.updateProgressBar("Audio: Music", fname)
            self.game.sound.register_music(k,self.game.music_path+fname, volume=volume)
            self.numLoaded += 1

        for s in effects:
            k  = value_for_key(s,'key')
            fname = value_for_key(s,'file')
            volume = value_for_key(s,'volume',.5)
            self.updateProgressBar("Audio SFX", fname)
            self.game.sound.register_sound(k,self.game.sfx_path+fname, volume=volume)
            self.numLoaded += 1

        for s in voice:
            k  = value_for_key(s,'key')
            fname = value_for_key(s,'file')
            channel = value_for_key(s,'channel',0)
            volume = value_for_key(s,'volume',.5)
            self.updateProgressBar("Audio Voices", fname)
            # self.game.sound.register_sound(k,self.game.voice_path+fname, channel=channel, volume=volume)
            self.game.sound.register_sound(k,self.game.voice_path+fname, volume=volume)
            self.numLoaded += 1
Пример #26
0
    def mode_started(self):
        self.change_lampshow()
        anim = dmd.Animation().load("./dmd/f14launch.dmd")
        self.takeoff_layer = dmd.AnimatedLayer(frames=anim.frames,
                                               hold=False,
                                               repeat=False,
                                               frame_time=5)

        self.f14_splash_layer = dmd.FrameLayer(
            opaque=True,
            frame=dmd.Animation().load('./dmd/f14bw2.dmd').frames[0])
        self.f14_sunset_layer = dmd.FrameLayer(
            opaque=True,
            frame=dmd.Animation().load('./dmd/f14sun.dmd').frames[0])
        self.f14_layer = dmd.FrameLayer(
            opaque=True,
            frame=dmd.Animation().load('./dmd/tomcat20beware.dmd').frames[0])

        self.press_layer = dmd.TextLayer(128 / 2, -8,
                                         font_named("beware22aa.dmd"),
                                         "center").set_text("PRESS")
        self.start_layer = dmd.TextLayer(128 / 2, 8,
                                         font_named("beware22aa.dmd"),
                                         "center").set_text("START")
        self.start_layer.composite_op = 'blacksrc'
        self.press_start_layer = dmd.GroupedLayer(
            128, 32, [self.press_layer, self.start_layer])
        gen = dmd.MarkupFrameGenerator()
        gen.font_plain = font_named("beware11.dmd")
        gen.font_bold = font_named("beware20aa.dmd")
        credits_frame = gen.frame_for_markup("""

#CREDITS#

[Rules + Coding]
[Mark Sunnucks]

[Special thanks]
[G. Stellenberg]
[A. Preble]
[S. van der Staaij]

[P-ROC]
[pyprocgame]

""")

        self.credits_layer = dmd.PanningLayer(width=128,
                                              height=32,
                                              frame=credits_frame,
                                              origin=(0, 0),
                                              translate=(0, 1),
                                              bounce=False)
        self.credits_layer.composite_op = 'blacksrc'
        self.credits_overlay_layer = dmd.GroupedLayer(
            128, 32, [self.takeoff_layer, self.credits_layer])
        script = [{
            'seconds': 5.0,
            'layer': self.f14_splash_layer
        }, {
            'seconds': 5.0,
            'layer': self.press_start_layer
        }, {
            'seconds': 20.0,
            'layer': self.credits_overlay_layer
        }, {
            'seconds': 5.0,
            'layer': self.f14_sunset_layer
        }, {
            'seconds': 5.0,
            'layer': self.press_start_layer
        }]

        self.layer = dmd.ScriptedLayer(width=128, height=32, script=script)
Пример #27
0
    def load(self):
        l = logging.getLogger("PIL.PngImagePlugin")
        l.setLevel(logging.WARNING)
        l = logging.getLogger("game.assets")
        l.setLevel(logging.WARNING)
        l = logging.getLogger("game.sound")
        l.setLevel(logging.WARNING)
        l = logging.getLogger("game.dmdcache")
        l.setLevel(logging.WARNING)
        anims = self.value_for_key_path(keypath='Animations',
                                        default={}) or list()
        fonts = self.value_for_key_path(keypath='Fonts', default={}) or list()
        hfonts = value_for_key(fonts, 'HDFonts', {}) or list()
        rfonts = value_for_key(fonts, 'DMDFonts', {}) or list()
        fontstyles = value_for_key(fonts, 'FontStyles', {}) or list()
        lamps = self.value_for_key_path(keypath='LampShows',
                                        default={}) or list()
        rgbshows = self.value_for_key_path(keypath='RGBShows',
                                           default={}) or list()
        sounds = self.value_for_key_path(keypath='Audio', default={}) or list()
        music = value_for_key(sounds, 'Music', {}) or list()
        effects = value_for_key(sounds, 'Effects', {}) or list()
        voice = value_for_key(sounds, 'Voice', {}) or list()

        paths = self.value_for_key_path(keypath='AssetListFiles',
                                        default={}) or list()
        #if there was a list of files to load, then load those
        for path in paths:
            self.loaded_assets_files.append(path)
            self.values = yaml.load(open(path, 'r'))
            anims += self.value_for_key_path(keypath='Animations',
                                             default={}) or list()
            fonts = self.value_for_key_path(keypath='Fonts') or list()
            hfonts += value_for_key(fonts, 'HDFonts', {})
            rfonts += value_for_key(fonts, 'DMDFonts', {}) or list()
            fontstyles += value_for_key(fonts, 'FontStyles', {}) or list()
            lamps += self.value_for_key_path(keypath='LampShows',
                                             default={}) or list()
            rgbshows += self.value_for_key_path(keypath='RGBShows',
                                                default={}) or list()
            sounds = self.value_for_key_path(keypath='Audio',
                                             default={}) or list()
            music += value_for_key(sounds, 'Music', {}) or list()
            effects += value_for_key(sounds, 'Effects', {}) or list()
            voice += value_for_key(sounds, 'Voice', {}) or list()

        # self.total = str(len(anims)+len(hfonts)+len(rfonts)+len(music)+len(effects)+len(voice))
        self.total = (len(lamps) + len(fontstyles) + len(anims) + len(hfonts) +
                      len(rfonts) + len(music) + len(effects) + len(voice))

        try:
            current = ""
            for l in lamps:
                k = value_for_key(l, 'key')
                fname = value_for_key(l, 'file')
                self.updateProgressBar("Lampshows", fname)
                f = self.game.lampshow_path + fname
                current = 'Lampshow: [%s]: %s, %s ' % (k, f, fname)
                self.game.lampctrl.register_show(k, f)

                # Validate the lampshow --as best as possible
                self.game.lampctrl.show.load(f, False, None)
                for tr in self.game.lampctrl.show.lampshow.tracks:
                    if tr.driver == None:  # Check drivers.
                        tr.resolve_driver_with_game(self.game)
                    if tr.driver == None:
                        raise ValueError, "Name '%s' specified in lampshow does not match a driver in the machine yaml." % tr.name

                self.numLoaded += 1

            for l in rgbshows:
                k = value_for_key(l, 'key')
                fname = value_for_key(l, 'file')
                self.updateProgressBar("RGBShows", fname)
                f = self.game.lampshow_path + fname
                current = 'RGBshow: [%s]: %s, %s ' % (k, f, fname)
                self.game.rgbshow_player.load(k, f)
                self.numLoaded += 1

            for f in hfonts:
                k = value_for_key(f, 'key')
                sname = value_for_key(f, 'systemName', k)
                size = value_for_key(f, 'size')
                file_path = value_for_key(f, 'file', None)
                self.updateProgressBar("HD Fonts", sname)
                current = 'HD font: [%s]: %s, %d ' % (k, sname, size)

                if (file_path is not None):
                    file_path = self.game.hdfont_path + file_path
                    if (not os.path.isfile(file_path)):
                        raise ValueError, "Could not load font as specified in yaml\n %s\n File [%s] does not exist." % (
                            current, file_path)

                self.fonts[k] = dmd.hdfont_named(sname,
                                                 size,
                                                 font_file_path=file_path)
                self.numLoaded += 1

            for f in rfonts:
                k = value_for_key(f, 'key')
                fname = value_for_key(f, 'file')
                self.updateProgressBar("DMD Fonts", fname)
                current = 'Font: [%s]: %s ' % (k, fname)
                self.fonts[k] = dmd.font_named(fname)
                self.numLoaded += 1

            for f in fontstyles:
                ic = value_for_key(f, 'interior_color')
                lc = value_for_key(f, 'line_color')
                lw = value_for_key(f, 'line_width')
                k = value_for_key(f, 'key')
                font_style = dmd.HDFontStyle(interior_color=ic,
                                             line_width=lw,
                                             line_color=lc)
                self.fontstyles[k] = font_style

            for anim in anims:
                k = value_for_key(anim, 'key')
                ft = value_for_key(anim, 'frame_time', 2)
                f = value_for_key(anim, 'file')
                r = value_for_key(anim, 'repeatAnim', False)
                h = value_for_key(anim, 'holdLastFrame', False)
                o = value_for_key(anim, 'opaque', False)
                c = value_for_key(anim, 'composite_op')
                x = value_for_key(anim, 'x_loc', 0)
                y = value_for_key(anim, 'y_loc', 0)
                streaming_load = value_for_key(anim, 'streamingMovie', False)
                png_stream_cache = value_for_key(anim, 'streamingPNG_Cached',
                                                 False)
                streaming_png = value_for_key(anim, 'streamingPNG',
                                              png_stream_cache)
                current = 'Animation: [%s]: %s' % (k, f)
                # started = timeit.time.time()
                started = timeit.time.time()
                self.loadIntoCache(k, ft, f, r, h, o, c, x, y, streaming_load,
                                   streaming_png, png_stream_cache)
                time_taken = timeit.time.time() - started
                self.logger.info("loading visual asset took %.3f seconds" %
                                 time_taken)
        except:
            self.logger.error("===ASSET MANAGER - ASSET FAILURE===")
            self.logger.error(current)
            self.logger.error("======")
            raise

        for s in music:
            k = value_for_key(s, 'key')
            fname = value_for_key(s, 'file')
            volume = value_for_key(s, 'volume', .5)
            streaming_load = value_for_key(s, 'streaming_load', True)
            self.updateProgressBar("Audio: Music", fname)
            self.game.sound.register_music(
                k, self.game.music_path + fname,
                volume=volume)  #, streaming_load=streaming_load)
            self.numLoaded += 1

        for s in effects:
            k = value_for_key(s, 'key')
            fname = value_for_key(s, 'file')
            volume = value_for_key(s, 'volume', .5)
            is_voice = value_for_key(s, 'voice', False)
            self.updateProgressBar("Audio SFX", fname)
            self.game.sound.register_sound(k,
                                           self.game.sfx_path + fname,
                                           volume=volume,
                                           is_voice=is_voice)
            self.numLoaded += 1

        for s in voice:
            k = value_for_key(s, 'key')
            fname = value_for_key(s, 'file')
            volume = value_for_key(s, 'volume', .5)
            self.updateProgressBar("Audio Voices", fname)
            self.game.sound.register_sound(k,
                                           self.game.voice_path + fname,
                                           volume=volume,
                                           is_voice=True)
            self.numLoaded += 1
Пример #28
0
    def __init__(self):
        #super(F14SecondSortie, self).__init__(pinproc.MachineTypeWPC95)
        self.curr_file_path = curr_file_path
        super(F14SecondSortie, self).__init__(pinproc.MachineTypeWPC95)
        self.load_config(game_machine_yaml)

        self.tomcatTargetIndex = (["lowerLeftT", "lowerLeftO", "lowerLeftM", "upperLeftT", "upperLeftO", "upperLeftM",
                                   "upperRightC", "upperRightA", "upperRightT", "lowerRightC", "lowerRightA",
                                   "lowerRightT"])

        self.logging_enabled = True
        # self.balls_per_game = ballsPerGame

        ### Set Logging Info ###
        logging.basicConfig(filename='f14.txt', level=logging.INFO)

        #### Settings and Game Data ####
        self.load_settings(settings_template_path, settings_path)
        self.load_game_data(game_data_template_path, game_data_path)

        # update audit data on boot up time
        self.game_data['Time Stamps']['Last Boot-Up'] = str(strftime("%d %b %Y %H:%M"))
        if self.game_data['Time Stamps']['First Boot-Up'] == 'Not Set':
            self.game_data['Time Stamps']['First Boot-Up'] = self.game_data['Time Stamps']['Last Boot-Up']
        self.save_game_data()

        # used to hold the 'fonts' dictionary
        fonts = {}
        animations = {}

        self.lampshow_path = config.value_for_key_path('lampshow_path', curr_file_path + "/assets/lampshows/")
        self.dmd_path = config.value_for_key_path('dmd_path', curr_file_path + "/assets/dmd/")
        self.sound_path = config.value_for_key_path('sound_path', curr_file_path + "/assets/sound/")

        self.voice_path = self.sound_path + config.value_for_key_path('voice_dir', "voice/")
        self.sfx_path = self.sound_path + config.value_for_key_path('sfx_dir', "sfx/")
        self.music_path = self.sound_path + config.value_for_key_path('music_dir', "music/")

        self.hdfont_path = config.value_for_key_path('hdfont_dir', curr_file_path + "/assets/fonts/")



        #### Setup Sound Controller ####

        self.sound = sound.SoundController(self)
        #self.RegisterSound()  #### Pre-load animations
        #self.RegisterAnimations()


        #### Setup Lamp Controller ####
        self.lampctrl = procgame.lamps.LampController(self)
        self.lampctrlflash = procgame.lamps.LampController(self)
        #self.RegisterLampshows()

        # call load_assets function to load fonts, sounds, etc.
        self.load_assets()

        #### software version number ####
        self.revision = "2.0.0"

        #### Mode Definitions ####
        OSC_closed_switches = ['trough1', 'trough2', 'trough3', 'trough4']

        #self.osc = modes.OSC_Mode(game=self, priority=1, closed_switches=OSC_closed_switches)
        #self.modes.add(self.osc)

        self.score_display = score_display.ScoreDisplay(self, 0)
        self.reset()

        self.utilities = UtilitiesMode(self, 100)
        self.trough = Trough(self, 0)
        self.info = Info(self, 200)
        self.base_mode = BaseGameMode(self, 0)
        self.attract_mode = AttractMode(self, 1)
        self.mission = MissionMode(self, 2)
        self.locks = LocksMode(self, 50)
        self.kill1mission = Kill1Mode(self, 3)
        self.kill2mission = Kill2Mode(self, 3)
        self.kill3mission = Kill3Mode(self, 3)
        self.kill4mission = Kill4Mode(self, 3)
        self.kill5mission = Kill5Mode(self, 3)
        self.kill6mission = Kill6Mode(self, 3)
        self.kill7mission = Kill7Mode(self, 3)
        self.ballsaver_mode = BallSaver(self, 1)
        self.kickback_mode = KickbackMode(self, 1)
        self.exitgame_mode = ExitGameMode(self, 1)
        # self.tilt = Tilt(self,200)
        self.bonus_mode = Bonus(self, 102)
        self.multiball_mode = Multiball(self, 101)
        # self.quick_multiball_mode = QuickMultiball(self,101)

        self.service_mode = ServiceMode(self, 300, font_named("Font07x5.dmd"), font_named("font_8x6_bold.dmd"), [])

        #### Initial Mode Queue ####
        self.modes.add(self.exitgame_mode)
        self.modes.add(self.utilities)
        self.modes.add(self.trough)
        self.modes.add(self.base_mode)
        self.modes.add(self.mission)
        self.modes.add(self.locks)