def __init__(self, game): super(InterrupterJones, self).__init__(game=game, priority=61, mode_type=AdvancedMode.Game) self.myID = "InterrupterJones" # Scoring mode screens bg = dmd.FrameLayer(frame=self.game.animations['gold_bg'].frames[0]) self.score_title_top = dmd.HDTextLayer(1920 / 2, 80, self.game.fonts['IM370'], "center", line_color=(0, 0, 0), line_width=8, interior_color=(255, 0, 0)) title_bot = dmd.HDTextLayer(1920 / 2, 420, self.game.fonts['IM370'], "center", line_color=(0, 0, 0), line_width=8, interior_color=(255, 0, 0)) title_bot.set_text("SCORING") self.score_page2_top = dmd.HDTextLayer(1920 / 2, 30, self.game.fonts['IM160'], "center", line_color=( 0, 0, 0, ), line_width=4, interior_color=(192, 192, 192)) self.score_page2_mid = dmd.HDTextLayer(1920 / 2, 220, self.game.fonts['IM370'], "center", line_color=(0, 0, 0), line_width=8, interior_color=(255, 0, 0)) self.score_page2_bot = dmd.HDTextLayer(1920 / 2, 590, self.game.fonts['IM160'], "center", line_color=( 0, 0, 0, ), line_width=4, interior_color=(192, 192, 192)) self.score_page1 = dmd.GroupedLayer( 1920, 800, [bg, self.score_title_top, title_bot], opaque=True) self.score_page2 = dmd.GroupedLayer( 1920, 800, [ bg, self.score_page2_top, self.score_page2_mid, self.score_page2_bot ], opaque=True)
def end_bogey(self): self.game.ramps.ramp_stage = [0, 0] bg = self.game.animations['bright_clouds'] text = dmd.HDTextLayer(1920 / 2, 50, self.game.fonts['default'], "center", line_color=[64, 0, 0], line_width=6, interior_color=[192, 0, 0]) text.set_text("WE'VE GOT A BOGEY") text2 = dmd.HDTextLayer(1920 / 2, 175, self.game.fonts['default'], "center", line_color=[64, 0, 0], line_width=6, interior_color=[192, 0, 0]) text2.set_text("TOTAL:") score = dmd.HDTextLayer(1920 / 2, 325, self.game.fonts['main_score'], "center", line_color=[64, 64, 0], line_width=6, interior_color=[192, 192, 0]) score.set_text(self.game.score_display.format_score(self.total)) self.layer = dmd.GroupedLayer(1920, 800, [bg, text, text2, score]) self.running = False # reset the ramps status self.game.ramps.bogey_status = "OPEN" self.game.base.set_music() self.delay(delay=3, handler=self.unload) # update the ramp lamps self.game.ramps.update_lamps()
def __init__(self,game): super(Bonus, self).__init__(game=game, priority=51,mode_type=AdvancedMode.Manual) self.myID = "Bonus Tally" # background image self.top_line = dmd.HDTextLayer(1920 / 2, 20, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=3,interior_color=(224, 224, 224)) self.points_line = dmd.HDTextLayer(1920 / 2, 200, self.game.fonts['main_score'], "center", line_color=(0, 0, 0), line_width=6,interior_color=(224, 128, 32)) backdrop = self.game.animations['bonus_backdrop'] self.combined = dmd.GroupedLayer(1920,800, [backdrop, self.top_line, self.points_line], opaque = True)
def __init__(self, game): super(Shields, self).__init__(game=game, priority=11, mode_type=AdvancedMode.Game) self.myID = "Shields" self.shield_lamps = [ self.game.lamps.topLeftLane, self.game.lamps.topRightLane, self.game.lamps.rightOutlane, self.game.lamps.rightReturnLane, self.game.lamps.leftReturnLane, self.game.lamps.leftOutlane ] self.shield_bg = dmd.FrameLayer( frame=self.game.animations['shield_logo'].frames[0]) self.title = dmd.HDTextLayer(980, -40, self.game.fonts['shield280'], "center", line_color=(0, 0, 0), line_width=8, interior_color=(255, 255, 255)) self.title.set_text("S.H.I.E.L.D.") self.top_text = dmd.HDTextLayer(980, 250, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=6, interior_color=(255, 255, 255)) self.bot_text = dmd.HDTextLayer(980, 490, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=6, interior_color=(0, 192, 0)) self.top_text.set_text("IS LIT") self.twolineA = dmd.HDTextLayer(980, 380, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=6, interior_color=(0, 192, 0)) self.twolineB = dmd.HDTextLayer(980, 550, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=6, interior_color=(0, 192, 0)) self.valid = True self.shield_tracking = [False, False, False, False, False, False]
def __init__(self, game): super(DoubleScoring, self).__init__(game=game, priority=9, mode_type=AdvancedMode.Manual) self.myID = "DoubleScoring" self.running = False backdrop = dmd.FrameLayer( frame=self.game.animations['metal_bg'].frames[0]) banner = dmd.PanningLayer( 3840, 800, self.game.animations['double_scoring_banner'].frames[0], (0, 0), (20, 0), bounce=False, wrap=True) 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("DOUBLE SCORING") # score goes on bottom 2 for double scoring 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.display = dmd.GroupedLayer( 1920, 800, [ backdrop, banner, title, self.bottom2, timer_box, self.timer_layer ], opaque=True) self.timer_start_value = 41 self.fade_index = 0
def __init__(self,game): super(Skillshot, self).__init__(game=game, priority=60, mode_type=AdvancedMode.Manual) self.myID = "Skillshot" self.running = False bg = self.game.animations['shield_logo'] bar = self.game.animations['gold_bar'] bar.set_target_position(0,200) title = dmd.HDTextLayer(1920/2, 45, self.game.fonts['shield120'], "center", interior_color=(255, 255, 255), line_color=(0, 0, 1), line_width=4).set_text("SKILLSHOT") self.score_text = dmd.HDTextLayer(1920/2, 185, self.game.fonts['main_score'], "center", interior_color=(200, 15, 15), line_color=(0, 0, 1), line_width=8) self.display = dmd.GroupedLayer(1920, 800, [bg, bar, title, self.score_text],opaque=True) self.light = 0 self.hit = False self.saver = False
def __init__(self, game): super(MongerToy, self).__init__(game=game, priority=20, mode_type=AdvancedMode.System) self.myID = "MongerToy" # specific monger toy status # self.status = None # for testing set status to down self.status = "INIT" self.target = "DOWN" self.monger_hit_movies = [ self.game.animations['monger_hit_1'], self.game.animations['monger_hit_2'], self.game.animations['monger_hit_3'], self.game.animations['monger_hit_4'] ] self.monger_hit_idx = 0 self.hit_score_text = dmd.HDTextLayer(1820, 550, self.game.fonts['bebas200'], "right", line_color=[0, 0, 0], line_width=4, interior_color=[146, 24, 222]) # lower the monger self.delay(delay=1, handler=self.reset_toy)
def start_bogey_display(self): # do the display anim = self.game.animations['bogey_start_movie'] anim.reset() text = dmd.HDTextLayer(1920 / 2, 20, self.game.fonts['default'], "center", line_color=[32, 32, 0], line_width=4, interior_color=[255, 0, 0]) text.set_text("BOGEY SPOTTED") text.blink_frames = 8 text.blink_frames_counter = 8 self.layer = dmd.GroupedLayer(1920, 800, [anim, text]) if self.game.mark.player_mark < 6: self.game.mark.player_mark += 1 self.game.mark.score() self.delay("display", delay=3, handler=self.game.mark.completed, param=self.get_going) else: self.delay("display", delay=3, handler=self.get_going) # start the timer in 3 seconds regardless fo what the display is doing self.delay(delay=3, handler=self.timer)
def __init__(self, game): super(Drones, self).__init__(game=game, priority=15, mode_type=AdvancedMode.Game) self.myID = "Drones" self.drone_lamps = [ self.game.lamps['droneTarget0'], self.game.lamps['droneTarget1'], self.game.lamps['droneTarget2'], self.game.lamps['droneTarget3'] ] self.drone_0_layer = self.game.animations['drone_0_image'] self.drone_0_layer.set_target_position(113, 0) self.drone_1_layer = self.game.animations['drone_1_image'] self.drone_1_layer.set_target_position(560, 0) self.drone_2_layer = self.game.animations['drone_2_image'] self.drone_2_layer.set_target_position(1007, 0) self.drone_3_layer = self.game.animations['drone_3_image'] self.drone_3_layer.set_target_position(1426, 0) self.explosion_layer = self.game.animations['explosion'] self.explosion_positions = [53, 500, 933, 1386] self.drone_layers = [ self.drone_0_layer, self.drone_1_layer, self.drone_2_layer, self.drone_3_layer ] self.drone_quotes = ['ga_drone', 'aa_drone', 'ta_drone', 'sa_drone'] self.quote_delay = self.game.sound.sounds['drone_hit']['sound_list'][ 0].get_length() self.text = dmd.HDTextLayer(1920 / 2, 620, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) self.score_text = dmd.HDTextLayer(1920 / 2, 620, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=6, interior_color=(64, 64, 224)) self.text_positions = [300, 750, 1180, 1620] self.drone_tracking = [True, True, True, True]
def complete_display(self): layers = [] layers.append(self.backdrop) layers.append(self.left_pop_image) layers.append(self.right_pop_image) layers.append(self.bottom_pop_image) line_1 = dmd.HDTextLayer(1920 / 2, 20, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(0, 224, 0)) line_1.set_text("SUPER POPS") line_2 = dmd.HDTextLayer(1920 / 2, 170, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(0, 224, 0)) line_2.set_text("COMPLETED") line_3 = dmd.HDTextLayer(1920 / 2, 360, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(224, 224, 0)) line_3.set_text("JACKPOT = " + self.game.score_display.format_score(self.jackpot), blink_frames=8) layers.append(line_1) layers.append(line_2) layers.append(line_3) self.layer = dmd.GroupedLayer(1920, 1080, layers, opaque=True) # reset all the things self.delay(delay=3, handler=self.reset_pops) self.delay("clear", delay=3, handler=self.clear_layer)
def __init__(self, game): super(WarMachine, self).__init__(game=game, priority=16, mode_type=AdvancedMode.Game) self.myID = "WarMachine" metal_backdrop = self.game.animations['war_machine_bg_blank'] top = dmd.HDTextLayer(1920 / 2, 100, self.game.fonts['bebas300'], "center", line_color=(0, 0, 0), line_width=4, interior_color=(64, 64, 255)) top.set_text("JACKPOT NOW") self.jp_now_text = dmd.HDTextLayer(1920 / 2, 350, self.game.fonts['bebas300'], "center", line_color=(0, 0, 0), line_width=4, interior_color=(255, 255, 0)) self.jp_now_display = dmd.GroupedLayer( 1920, 800, [metal_backdrop, top, self.jp_now_text], opaque=True) self.multiball_status = "OPEN"
def ramp_made_display(self, stage, points): self.cancel_delayed("Ramp Display") # video clip video = self.game.animations[self.rampMadeAnimations[stage]] video.reset() text = dmd.HDTextLayer(1820, 550, self.game.fonts['bebas200'], "right", line_color=[2, 2, 2], line_width=4, interior_color=[224, 128, 0]) text.set_text(self.game.score_display.format_score(points)) text.blink_frames = 8 text.blink_frames_counter = 8 self.layer = dmd.GroupedLayer(1920, 800, [video, text], opaque=True) # clear layer after x self.delay("Ramp Display", delay=3, handler=self.clear_layer)
def __init__(self, game): super(Marks, self).__init__(game=game, priority=45, mode_type=AdvancedMode.Game) self.myID = "Marks" self.hold = False self.movie_index = 0 # used to signal jericho self.finished = False # used for do or die hurry up self.dod = False # used for do or die mb self.dod_mb = False self.mark_movies = [ 'derp', 'mark_1_movie', 'mark_2_movie', 'mark_3_movie', 'mark_4_movie', 'mark_5_movie', 'mark_6_movie' ] self.mark_quotes = [ 'derp', 'mark_1_completed', 'mark_2_completed', 'mark_3_completed', 'mark_4_completed', 'mark_5_completed', ',mark_6_completed' ] self.mark_lamps = [ self.game.lamps['mark1'], self.game.lamps['mark2'], self.game.lamps['mark3'], self.game.lamps['mark4'], self.game.lamps['mark5'], self.game.lamps['mark6'] ] self.mode_lamps = [ self.game.lamps['progressIronMan'], self.game.lamps['progressWarMachine'], self.game.lamps['progressIronMonger'], self.game.lamps['progressWhiplash'], self.game.lamps['progressDrones'] ] self.text = dmd.HDTextLayer(1890, 640, self.game.fonts['default'], "right", line_color=(0, 0, 0), line_width=3, interior_color=(224, 224, 224)) self.player_mark = 0 self.modes_finished = [False, False, False, False, False] self.modes_lit = [False, False, False, False, False]
def __init__(self, game): super(WhiplashMultiball, self).__init__(game=game, priority=49, mode_type=AdvancedMode.Manual) self.myID = "WhiplashMultiball" self.running = False start_movie_1 = self.game.animations['whiplash_start'] start_movie_1.opaque = True start_movie_2 = self.game.animations['mega_whiplash_start'] start_movie_2.opaque = True self.start_movies = [start_movie_1, start_movie_2] jp_movies_1 = [ self.game.animations['whiplash_jp_1'], self.game.animations['whiplash_jp_2'], self.game.animations['whiplash_jp_3'], self.game.animations['whiplash_jp_4'], self.game.animations['whiplash_jp_5'] ] jp_movies_2 = [ self.game.animations['whiplash_jp_1b'], self.game.animations['whiplash_jp_2b'], self.game.animations['whiplash_jp_3b'], self.game.animations['whiplash_jp_4b'], self.game.animations['whiplash_jp_5b'], self.game.animations['whiplash_jp_6b'] ] self.jackpot_movies = [jp_movies_1, jp_movies_2] super_1 = [ self.game.animations['whiplash_super'], self.game.animations['whiplash_super_2'] ] super_2 = [ self.game.animations['mega_whiplash_super'], self.game.animations['mega_whiplash_super_2'] ] self.super_movies = [super_1, super_2] self.type = 0 bg = self.game.animations['whiplash_mb_bg'] bg.opaque = True bg_mk2 = self.game.animations['whiplash_mk2_mb_bg'] bg_mk2.opaque = True self.line_1 = dmd.HDTextLayer(1920 / 2, 300, self.game.fonts['whiplash_300'], "center", line_color=(203, 197, 55), line_width=5, interior_color=(169, 42, 0)) self.line_2 = dmd.HDTextLayer(1920 / 2, 200, self.game.fonts['default'], "center", line_color=(96, 96, 86), line_width=3, interior_color=(224, 224, 224)) jp_text_1 = dmd.GroupedLayer(1920, 800, [bg, self.line_1, self.line_2], opaque=True) jp_text_2 = dmd.GroupedLayer(1920, 800, [bg_mk2, self.line_1, self.line_2], opaque=True) self.jackpot_text = [jp_text_1, jp_text_2] self.jackpot_count = [5, 10] 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("WHIPLASH MULTIBALL") self.info_line = dmd.HDTextLayer(1920 / 2, 650, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=5, interior_color=(224, 224, 224)) self.score_line = dmd.HDTextLayer(1920 / 2, 200, self.game.fonts['main_score'], "center", line_color=(0, 0, 0), line_width=5, interior_color=(224, 0, 0)) main_1 = dmd.GroupedLayer(1920, 800, [bg, title, self.score_line, self.info_line], opaque=True) main_2 = dmd.GroupedLayer( 1920, 800, [bg_mk2, title, self.score_line, self.info_line], opaque=True) self.main_display = [main_1, main_2] self.styles = [ self.game.fontstyles['whiplash_mb_0'], self.game.fontstyles['whiplash_mb_1'] ] self.jp_hit_sounds = [ 'whiplash_jp_hit_1', 'whiplash_jp_hit_2', 'whiplash_jp_hit_3', 'whiplash_jp_hit_4' ] self.jp_sound_index = 0 self.points = 0 self.orbit_inactive = False self.hold = True self.arrows = False self.ball_added = False
def target_display(self, target, side, complete=False): self.cancel_delayed("clear") off_layers = [] on_layers = [] for n in range(0, 4, 1): if self.left_tracking[n] == True: if side == "L" and target == n: on_layers.append(self.left_layers[n]) else: # add the layer for that letter on_layers.append(self.left_layers[n]) off_layers.append(self.left_layers[n]) for n in range(0, 3, 1): if self.right_tracking[n] == True: if side == "R" and target == n: on_layers.append(self.right_layers[n]) else: on_layers.append(self.right_layers[n]) off_layers.append(self.right_layers[n]) # top and bottom text top = dmd.HDTextLayer(1920 / 2, 20, self.game.fonts['default'], "center", line_color=(96, 96, 86), line_width=3, interior_color=(224, 224, 224)) if complete: # score the points for the mark complete here, in care the display gets cut off self.game.mark.player_mark += 1 self.game.mark.score() top.set_text("TARGETS COMPLETED") else: top.set_text("COMPLETE TARGETS") on_layers.append(top) off_layers.append(top) bottom = dmd.HDTextLayer(1920 / 2, 650, self.game.fonts['default'], "center", line_color=(96, 96, 96), line_width=3, interior_color=(224, 224, 224)) if complete: bottom.set_text(self.mode_titles[(self.completions % 3)] + " IS READY") else: bottom.set_text("FOR " + self.mode_titles[(self.completions % 3)]) on_layers.append(bottom) off_layers.append(bottom) # group layer without the new letter off = dmd.GroupedLayer(1920, 800, off_layers) # group layer with the new letter on = dmd.GroupedLayer(1920, 800, on_layers) self.layer = dmd.ScriptedLayer(1920, 800, [{ 'seconds': 0.2, 'layer': off }, { 'seconds': 0.2, 'layer': on }], opaque=True) if complete: self.delay(delay=2, handler=self.target_display_movie_helper, param=[target, side, complete]) else: self.delay("clear", delay=2, handler=self.clear_layer)
def __init__(self, game, priority, left_text, right_text, entered_handler): super(HD_InitialEntryMode, self).__init__(game, priority) self.entered_handler = entered_handler self.init_font = self.game.fonts['high_score_entry_inits'] #dmd.hdfont_named('consolas', 12) self.text_font = self.game.fonts['high_score_entry_msg'] #dmd.hdfont_named('consolas', 12) self.letters_font = self.game.fonts['high_score_entry_letters'] #dmd.hdfont_named('consolas', 12) (self.init_font_width, self.init_font_height) = self.init_font.size("M") self.text_font_height = self.text_font.size("M")[1] self.letters_font_width = self.letters_font.size("M")[0] self.letters_font_height = self.letters_font.size("M")[1] # self.init_font_height = self.init_font_size[1] # self.init_font_width = self.init_font_size[0] # self.text_font_height = self.text_font.size("Z")[1] # self.letters_font_width = self.letters_font.size("Z")[0] self.layer = dmd.GroupedLayer(self.game.dmd.width, self.game.dmd.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 = [] for text in left_text: frame = dmd.Frame(width=self.game.dmd.width, 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=self.game.dmd.width, 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=self.game.dmd.width, height=self.text_font_height) self.text_font.draw(frame, text, self.game.dmd.width-(self.text_font.size(text)[0]), 0) script.append({'seconds':seconds_per_text, 'layer':dmd.FrameLayer(frame=frame)}) topthird_right_layer = dmd.ScriptedLayer(width=self.game.dmd.width, 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=self.game.dmd.width, 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.inits_entry_layer = dmd.HDTextLayer(self.game.dmd.width/2, self.text_font_height, self.init_font, "center", vert_justify="top", line_color=(128,128,255), line_width=0, interior_color=(0,0,255),fill_color=(0,0,0)).set_text("") self.inits_entry_layer.set_target_position(0, self.text_font_height) self.layer.layers += [self.inits_entry_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)
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 }])
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)
def __init__(self, game): super(IronMonger, self).__init__(game=game, priority=17, mode_type=AdvancedMode.Game) self.myID = "IronMonger" self.monger_lamps = [ self.game.lamps['mongerM'], self.game.lamps['mongerO'], self.game.lamps['mongerN'], self.game.lamps['mongerG'], self.game.lamps['mongerE'], self.game.lamps['mongerR'] ] self.orbit_lamps = [ self.game.lamps['leftOrbitMonger'], self.game.lamps['centerShotMonger'], self.game.lamps['rightOrbitMonger'] ] self.grunts = [ 'monger_grunt_1', 'monger_grunt_2', 'monger_grunt_3', 'monger_grunt_4', 'monger_grunt_5', 'monger_grunt_6' ] self.grunt_index = 0 self.delay_names = [ 'leftSpinner', 'centerSpinner', 'rightSpinner', 'leftOrbit', 'rightOrbit' ] layer0 = dmd.FrameLayer( frame=self.game.animations['monger_logo_0'].frames[0]) layer0.set_target_position(367, 0) layer1 = dmd.FrameLayer( frame=self.game.animations['monger_logo_1'].frames[0]) layer1.set_target_position(367, 0) layer2 = dmd.FrameLayer( frame=self.game.animations['monger_logo_2'].frames[0]) layer2.set_target_position(367, 0) layer3 = dmd.FrameLayer( frame=self.game.animations['monger_logo_3'].frames[0]) layer3.set_target_position(367, 0) layer4 = dmd.FrameLayer( frame=self.game.animations['monger_logo_4'].frames[0]) layer4.set_target_position(367, 0) layer5 = dmd.FrameLayer( frame=self.game.animations['monger_logo_5'].frames[0]) layer5.set_target_position(367, 0) layer6 = dmd.FrameLayer( frame=self.game.animations['monger_logo_6'].frames[0]) layer6.set_target_position(367, 0) layer7 = dmd.FrameLayer( frame=self.game.animations['monger_logo_7'].frames[0]) layer7.set_target_position(367, 0) layer8 = dmd.FrameLayer( frame=self.game.animations['monger_logo_8'].frames[0]) layer8.set_target_position(367, 0) layer9 = dmd.FrameLayer( frame=self.game.animations['monger_logo_9'].frames[0]) layer9.set_target_position(367, 0) layer10 = dmd.FrameLayer( frame=self.game.animations['monger_logo_10'].frames[0]) layer10.set_target_position(367, 0) self.logo_layers = [ layer0, layer1, layer2, layer3, layer4, layer5, layer6, layer7, layer8, layer9, layer10 ] self.points_layer = dmd.HDTextLayer(1920 / 2, 570, self.game.fonts['bebas200'], "center", line_color=(96, 96, 86), line_width=3, interior_color=(224, 224, 224)) self.monger_base_value = 100000 self.spinner_points = [0, 0, 0] self.spinner_names = ['left', 'right', 'center'] self.current_monger_value = 100000 # which spinner has the live display self.last_spinner = 0 self.cold = True self.spinner_anim = self.game.animations['monger_minigun_firing'] self.spinner_text_layer = dmd.HDTextLayer(1870, 30, self.game.fonts['bebas200'], "right", line_color=(96, 96, 86), line_width=3, interior_color=(224, 224, 224)) self.spinner_display = dmd.GroupedLayer( 1920, 800, [self.spinner_anim, self.spinner_text_layer], opaque=True) self.valid = [True, True, True, True, True, True] self.status = "OPEN" self.letters = 0 self.toy_letters = 0 # script sets for the orbit shots script0 = ['im_script0a', 'spinner_tutorial', 'im_script0b'] script1 = ['im_script1a', 'spinner_tutorial', 'im_script1b'] script2 = [ 'im_script2a', 'spinner_tutorial', 'im_script2b', 'im_script2c' ] script3 = [ 'im_script3a', 'spinner_tutorial', 'im_script3b', 'im_script3c' ] script4 = [ 'im_script4a', 'spinner_tutorial', 'im_script4b', 'im_script4c' ] script5 = ['spinner_tutorial', 'im_script5a', 'im_script5b'] self.first_scripts = [ script0, script1, script2, script3, script4, script5 ] self.first_scripts_index = 0 script1b = [ 'im_script7a', 'im_script7b', 'im_script7c', 'im_script7d', 'im_script7e' ] script2b = [ 'im_script8a', 'im_script8b', 'im_script8c', 'im_script8d', 'im_script8e' ] script3b = [ 'im_script9a', 'im_script9b', 'im_script9c', 'im_script9d', 'im_script9e', 'im_script9f', 'im_script9g' ] self.second_scripts = [script1b, script2b, script3b] self.second_scripts_index = 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)
def __init__(self, game): super(MongerMultiball, self).__init__(game=game, priority=51, mode_type=AdvancedMode.Manual) self.myID = "MongerMultiball" self.running = False self.loop_count = 0 self.monger_lamps = [ "Placeholder", self.game.lamps['mongerM'], self.game.lamps['mongerO'], self.game.lamps['mongerN'], self.game.lamps['mongerG'], self.game.lamps['mongerE'], self.game.lamps['mongerR'] ] backdrop = self.game.animations['monger_multiball_backdrop'] title = dmd.HDTextLayer(1100, 20, self.game.fonts['bebas180'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(146, 24, 222)) title.set_text("IRON MONGER MULTIBALL") self.score_layer = dmd.HDTextLayer(1100, 140, self.game.fonts['bebas300'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(255, 255, 255)) shoot = dmd.HDTextLayer(1100, 450, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(255, 0, 0)) shoot.set_text("SHOOT") self.goal_text = dmd.HDTextLayer(1100, 550, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(255, 0, 0)) self.goal_text_2 = dmd.HDTextLayer(1100, 650, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(255, 0, 0)) self.main_display_layer = dmd.GroupedLayer( 1920, 800, [ backdrop, title, self.score_layer, shoot, self.goal_text, self.goal_text_2 ], opaque=True) self.start_movies = [ 'monger_start_1', 'monger_start_2', 'monger_start_3', 'monger_start_4' ] self.start_index = 0 self.hit_movies = [ 'monger_hit_1b', 'monger_hit_2b', 'monger_hit_3b', 'monger_hit_4b', 'monger_hit_5b', 'monger_hit_6b' ] self.monger_status = "DOWN" self.points_layer = dmd.HDTextLayer(1820, 550, self.game.fonts['bebas200'], "right", line_color=[0, 0, 0], line_width=4, interior_color=[146, 24, 222]) self.points_layer.set_text("250,000") self.super = False # text layers for intro display self.intro_1 = dmd.HDTextLayer(1890, 650, self.game.fonts['default'], "right", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) self.intro_1.set_text("MULTIBALL", blink_frames=6) self.intro_2 = dmd.HDTextLayer(1890, 550, self.game.fonts['default'], "right", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) self.intro_2.set_text("MONGER", blink_frames=6) self.intro_3 = dmd.HDTextLayer(1890, 450, self.game.fonts['default'], "right", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) self.intro_3.set_text("IRON", blink_frames=6) self.toy_valid = True script0 = [ 'immb_script0a', 'immb_script0b', 'immb_sript0c', 'immb_script0d', 'immb_script0e' ] script1 = [ 'immb_script1a', 'immb_script1b', 'immb_sript1c', 'immb_script1d', 'immb_script1e' ] script2 = [ 'immb_script2a', 'immb_script2b', 'immb_sript2c', 'immb_script2d' ] script3 = [ 'immb_script3a', 'immb_script3b', 'immb_sript3c', 'immb_script3d' ] self.scripts = [script0, script1, script2, script3] # pick out a script self.selected_script = random.choice(self.scripts) self.center_valid = False self.ball_added = False
def __init__(self, game): super(WarMachineMultiball, self).__init__(game=game, priority=50, mode_type=AdvancedMode.Manual) self.myID = "WarMachineMultiball" self.running = False self.drone_jackpots = [False, False, False, False] self.big5_jackpots = [False, False, False, False, False] self.super = False self.jp_movies = [ 'war_machine_jp_1', 'war_machine_jp_2', 'war_machine_jp_3', 'war_machine_jp_4', 'war_machine_jp_5' ] self.jp_delays = [1.8, 1.8, 1.8, 1.8, 1.8] self.jp_audio_clips = ['wm_jp_1', 'wm_jp_2', 'wm_jp_3', 'wm_jp_4'] self.d_jp_movies = [ 'war_machine_d_jp_1', 'war_machine_d_jp_2', 'war_machine_d_jp_3' ] self.d_jp_delays = [2.8, 2.7, 2.3] self.d_jp_audio_clips = [ 'wm_djp_1', 'wm_djp_2', 'wm_djp_3', 'wm_djp_4', 'wm_djp_5' ] metal_backdrop = self.game.animations['war_machine_bg_blank'] self.top = dmd.HDTextLayer(1920 / 2, 100, self.game.fonts['bebas300'], "center", line_color=(0, 0, 0), line_width=9, interior_color=(64, 64, 255)) self.bottom = dmd.HDTextLayer(1920 / 2, 350, self.game.fonts['bebas300'], "center", line_color=(0, 0, 0), line_width=9, interior_color=(255, 255, 0)) self.text_display = dmd.GroupedLayer( 1920, 800, [metal_backdrop, self.top, self.bottom], opaque=True) self.main_text_info = dmd.HDTextLayer(1920 / 2, 565, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) # group layers for the main display super_1 = dmd.HDTextLayer(1130, 110, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=9, interior_color=(224, 0, 0)).set_text("SHOOT", blink_frames=10) super_2 = dmd.HDTextLayer(1130, 280, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=9, interior_color=(224, 0, 0)).set_text("WAR", blink_frames=10) super_3 = dmd.HDTextLayer(1130, 450, self.game.fonts['bebas200'], "center", line_color=(0, 0, 0), line_width=9, interior_color=(224, 0, 0)).set_text("MACHINE", blink_frames=10) wm_backdrop = self.game.animations['war_machine_bg'] self.super_main = dmd.GroupedLayer( 1920, 800, [wm_backdrop, super_3, super_2, super_1], opaque=True) # drones self.drone_0_layer = self.game.animations['drone_0_sm'] self.drone_0_layer.set_target_position(183, 75) self.drone_1_layer = self.game.animations['drone_1_sm'] self.drone_1_layer.set_target_position(585, 75) self.drone_2_layer = self.game.animations['drone_2_sm'] self.drone_2_layer.set_target_position(997, 75) self.drone_3_layer = self.game.animations['drone_3_sm'] self.drone_3_layer.set_target_position(1366, 75) self.drone_layers = [ self.drone_0_layer, self.drone_1_layer, self.drone_2_layer, self.drone_3_layer ] drones_main_layers = [] drones_main_layers.append(metal_backdrop) for layer in self.drone_layers: drones_main_layers.append(layer) drones_main_layers.append(self.main_text_info) self.drones_main = dmd.GroupedLayer(1920, 800, drones_main_layers, opaque=True) self.left_arrow = self.game.animations['left_arrow'] self.left_arrow.set_target_position(220, 140) self.left_mid_arrow = self.game.animations['left_mid_arrow'] self.left_mid_arrow.set_target_position(520, 140) self.center_arrow = self.game.animations['center_arrow'] self.center_arrow.set_target_position(823, 140) self.right_mid_arrow = self.game.animations['right_mid_arrow'] self.right_mid_arrow.set_target_position(1122, 140) self.right_arrow = self.game.animations['right_arrow'] self.right_arrow.set_target_position(1420, 140) self.arrows = [ self.left_arrow, self.left_mid_arrow, self.center_arrow, self.right_mid_arrow, self.right_arrow ] big5_list = [] big5_list.append(metal_backdrop) for layer in self.arrows: big5_list.append(layer) big5_list.append(self.main_text_info) self.big5_main = dmd.GroupedLayer(1920, 800, big5_list, opaque=True) # # text layers for intro display intro_1 = dmd.HDTextLayer(70, 650, self.game.fonts['default'], "left", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) intro_1.set_text("MULTIBALL", blink_frames=6) intro_2 = dmd.HDTextLayer(70, 550, self.game.fonts['default'], "left", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) intro_2.set_text("MACHINE", blink_frames=6) intro_3 = dmd.HDTextLayer(70, 450, self.game.fonts['default'], "left", line_color=(0, 0, 0), line_width=6, interior_color=(224, 224, 224)) intro_3.set_text("WAR", blink_frames=6) self.intro_movie = self.game.animations['war_machine_ready'] self.intro = dmd.GroupedLayer( 1920, 800, [self.intro_movie, intro_1, intro_2, intro_3], opaque=True) self.drone_lamps = [ self.game.lamps['droneTarget0'], self.game.lamps['droneTarget1'], self.game.lamps['droneTarget2'], self.game.lamps['droneTarget3'] ]
def __init__(self, game): super(Whiplash, self).__init__(game=game, priority=15, mode_type=AdvancedMode.Game) self.myID = "Whiplash" self.hold = False self.movie_index = 0 hit_movies_1 = [ self.game.animations['whiplash_1_movie'], self.game.animations['whiplash_2_movie'], self.game.animations['whiplash_3_movie'], self.game.animations['whiplash_4_movie'], self.game.animations['whiplash_5_movie'] ] hit_movies_2 = [ self.game.animations['whiplash_1b_movie'], self.game.animations['whiplash_2b_movie'], self.game.animations['whiplash_3b_movie'], self.game.animations['whiplash_4b_movie'], self.game.animations['whiplash_5b_movie'], self.game.animations['mega_whiplash_face'] ] self.progress_movies = [hit_movies_1, hit_movies_2] track_1 = [ 'whiplash_laugh', 'whiplash_1_3', 'whiplash_1_2', 'whiplash_1_1' ] track_2 = [ 'whiplash_laugh', 'whiplash_2_5', 'whiplash_2_4', 'whiplash_2_3', 'whiplash_2_2', 'whiplash_2_1' ] self.voice_tracks = [track_1, track_2] # layers for the hits left display self.line_1 = dmd.HDTextLayer(1870, 450, self.game.fonts['whiplash_200'], "right", line_color=(196, 255, 255), line_width=5, interior_color=(12, 117, 2)) self.line_2 = dmd.HDTextLayer(1870, 625, self.game.fonts['bebas80'], "right", line_color=(0, 0, 0), line_width=3, interior_color=(224, 224, 224)) self.line_4 = dmd.HDTextLayer(1920 / 2, 660, self.game.fonts['default'], "center", line_color=( 0, 0, 0, ), line_width=3, interior_color=(252, 205, 63)) self.line_3 = dmd.HDTextLayer(1870, 700, self.game.fonts['bebas80'], "right", line_color=(0, 0, 0), line_width=3, interior_color=(224, 224, 224)) self.whiplash_type = 0 self.styles = [ self.game.fontstyles['whiplash_mb_0'], self.game.fontstyles['whiplash_mb_1'] ]
def __init__(self, game): super(ScoreDisplay, self).__init__(game=game, priority=0, mode_type=AdvancedMode.System) self.myID = "ScoreDisplay" self.layer = ScoreLayer(self.game.dmd.width, self.game.dmd.height, self) self.layer.layers = list() # build all the basic layers to be used self.info_string = "" self.info_index = 0 # main score self.main_score = dmd.HDTextLayer(1125, 310, self.game.fonts['main_score'], "center", vert_justify="center", line_color=(0, 0, 0), line_width=9, interior_color=(255, 224, 0)) self.main_score.set_text("00") # 1p score self.p1_score = dmd.HDTextLayer(200, 100, self.game.fonts['bebas80'], "center", vert_justify="center", line_color=(0, 0, 0), line_width=4, interior_color=(255, 224, 0)) self.p1_score.set_text("00") # 2p score self.p2_score = dmd.HDTextLayer(400, 100, self.game.fonts['bebas80'], "center", vert_justify="center", line_color=(0, 0, 0), line_width=4, interior_color=(255, 224, 0)) self.p2_score.set_text("00") # 3p score self.p3_score = dmd.HDTextLayer(600, 100, self.game.fonts['bebas80'], "center", vert_justify="center", line_color=(0, 0, 0), line_width=4, interior_color=(255, 224, 0)) self.p3_score.set_text("00") # 4p score self.p4_score = dmd.HDTextLayer(1654, 100, self.game.fonts['bebas80'], "center", vert_justify="center", line_color=(0, 0, 0), line_width=4, interior_color=(255, 224, 0)) self.p4_score.set_text("00") self.score_layers = [ self.p1_score, self.p2_score, self.p3_score, self.p4_score ] # switches self.switches = dmd.HDTextLayer(340, 232, self.game.fonts['ptsans24'], "right", vert_justify="center", line_color=(255, 255, 255), line_width=0, interior_color=(255, 255, 255)) self.switches.set_text("0") self.switch_count = 0 # ramps self.ramps = dmd.HDTextLayer(340, 270, self.game.fonts['ptsans24'], "right", vert_justify="center", line_color=(255, 255, 255), line_width=0, interior_color=(255, 255, 255)) self.ramps.set_text("0") self.ramp_count = 0 # duration self.duration = dmd.HDTextLayer(340, 310, self.game.fonts['ptsans24'], "right", vert_justify="center", line_color=(255, 255, 255), line_width=0, interior_color=(255, 255, 255)) self.duration.set_text("00:00:00") self.timer = 0 # extra balls self.extra_balls = dmd.HDTextLayer(340, 350, self.game.fonts['ptsans24'], "right", vert_justify="center", line_color=(255, 255, 255), line_width=0, interior_color=(255, 255, 255)) self.extra_balls.set_text("0") self.extra_ball_count = 0 # warnings self.warnings = dmd.HDTextLayer(340, 390, self.game.fonts['ptsans24'], "right", vert_justify="center", line_color=(255, 255, 255), line_width=0, interior_color=(255, 255, 255)) self.warnings.set_text("0") self.warning_count = 0 # recon image # recon text self.recon_text = dmd.HDTextLayer(400, 680, self.game.fonts['default'], "left", vert_justify="center", line_color=(0, 0, 0), line_width=2, interior_color=(255, 255, 255)) self.recon_text.set_text("RECON LOADING ...") self.recon_strings = ["IRONMAN", "WHIPLASH", "WAR MACHINE", "MONGER"] recon_img_ironman = dmd.FrameLayer( frame=self.game.animations['recon_img_ironman'].frames[0]) recon_img_ironman.enabled = False recon_img_ironman.set_target_position(50, 450) recon_img_whiplash = dmd.FrameLayer( frame=self.game.animations['recon_img_whiplash'].frames[0]) recon_img_whiplash.enabled = False recon_img_whiplash.set_target_position(50, 450) recon_img_warmachine = dmd.FrameLayer( frame=self.game.animations['recon_img_warmachine'].frames[0]) recon_img_warmachine.enabled = False recon_img_warmachine.set_target_position(50, 450) recon_img_monger = dmd.FrameLayer( frame=self.game.animations['recon_img_monger'].frames[0]) recon_img_monger.enabled = False recon_img_monger.set_target_position(50, 450) self.recon_images = [ recon_img_ironman, recon_img_whiplash, recon_img_warmachine, recon_img_monger ] self.recon_index = 0 self.last_num_players = 0 self.last_player_idx = 0 self.last_score = 0 self.last_ball_num = -1 # set up the backdrop self.set_backdrop() # set up the layers self.set_layers_list()
def __init__(self, game): super(Pops, self).__init__(game=game, priority=10, mode_type=AdvancedMode.Game) self.myID = "Pops" self.pop_lamps = [ self.game.lamps['leftJetBumper'], self.game.lamps['bottomJetBumper'], self.game.lamps['rightJetBumper'] ] self.orbit_lamps = [ self.game.lamps['leftOrbitWeaponAdvance'], self.game.lamps['centerShotWeaponAdvance'], self.game.lamps['rightOrbitWeaponAdvance'] ] self.backdrop = self.game.animations['pops_back'] self.left_pop_image = self.game.animations['pop_left'] self.right_pop_image = self.game.animations['pop_right'] self.right_pop_image.set_target_position(1325, 0) self.bottom_pop_image = self.game.animations['pop_bottom'] self.bottom_pop_image.set_target_position(330, 365) self.top_line = dmd.HDTextLayer(1920 / 2, 20, self.game.fonts['default'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(224, 224, 224)) self.super_line = dmd.HDTextLayer(1920 / 2, 120, self.game.fonts['bebas200'], "center", line_color=(96, 96, 86), line_width=3, interior_color=(0, 0, 255)) self.super_line.set_text("SUPER POPS") self.p_1_points = dmd.HDTextLayer(120, 480, self.game.fonts['bebas80'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(128, 128, 255)) self.p_2_points = dmd.HDTextLayer(1920 / 2, 310, self.game.fonts['bebas80'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(128, 128, 255)) self.p_3_points = dmd.HDTextLayer(1780, 480, self.game.fonts['bebas80'], "center", line_color=(0, 0, 0), line_width=3, interior_color=(128, 128, 255)) self.pop_layers = [ self.left_pop_image, self.bottom_pop_image, self.right_pop_image ] self.pop_text = [self.p_1_points, self.p_2_points, self.p_3_points] # pop names used for delays self.pop_names = ['left', 'bottom', 'right'] # pop sound names based on level self.pop_sounds = ['pops_0', 'pops_1', 'pops_1'] # set the values for the various levels self.pop_values = [5000, 7500, 10000] layer_list = [ self.backdrop, self.left_pop_image, self.right_pop_image, self.bottom_pop_image, self.top_line, self.super_line, self.p_1_points, self.p_2_points, self.p_3_points ] self.main_display = dmd.GroupedLayer(1920, 800, layer_list, opaque=True) # default pop state self.pop_state = [False, False, False] # TODO: maybe do the same for sounds? -- are sounds during super specific? self.super_boom = True
def __init__(self, game): super(IronmanTargets, self).__init__(game=game, priority=15, mode_type=AdvancedMode.Game) self.myID = "IronmanTargets" self.rampDoubled = "NONE" self.left_targets = [0, 1, 2, 3] self.right_targets = [0, 1, 2] self.scoring_mode_running = False self.left_lamps = [ self.game.lamps['leftTargetsI'], self.game.lamps['leftTargetsR'], self.game.lamps['leftTargetsO'], self.game.lamps['leftTargetsN'] ] self.right_lamps = [ self.game.lamps['rightTargetsM'], self.game.lamps['rightTargetsA'], self.game.lamps['rightTargetsN'] ] self.hit_movies = [ self.game.animations['hit_1_movie'], self.game.animations['hit_2_movie'], self.game.animations['hit_3_movie'], self.game.animations['hit_4_movie'], self.game.animations['hit_5_movie'], self.game.animations['hit_6_movie'], self.game.animations['hit_7_movie'], self.game.animations['hit_8_movie'], self.game.animations['hit_9_movie'], self.game.animations['hit_10_movie'] ] self.hit_index = 0 self.top = dmd.HDTextLayer(15, 15, self.game.fonts['bebas80'], "left", line_color=(0, 0, 0), line_width=3, interior_color=(224, 224, 224)) self.i_layer = dmd.FrameLayer( frame=self.game.animations['target_i_image'].frames[0]) self.i_layer.set_target_position(1301, 625) self.i_layer_d = dmd.FrameLayer( frame=self.game.animations['target_i_d'].frames[0]) self.i_layer_d.set_target_position(1301, 625) self.r_layer = dmd.FrameLayer( frame=self.game.animations['target_r_image'].frames[0]) self.r_layer.set_target_position(1349, 625) self.r_layer_d = dmd.FrameLayer( frame=self.game.animations['target_r_d'].frames[0]) self.r_layer_d.set_target_position(1349, 625) self.o_layer = dmd.FrameLayer( frame=self.game.animations['target_o_image'].frames[0]) self.o_layer.set_target_position(1437, 625) self.o_layer_d = dmd.FrameLayer( frame=self.game.animations['target_o_d'].frames[0]) self.o_layer_d.set_target_position(1437, 625) self.n1_layer = dmd.FrameLayer( frame=self.game.animations['target_n1_image'].frames[0]) self.n1_layer.set_target_position(1521, 625) self.n1_layer_d = dmd.FrameLayer( frame=self.game.animations['target_n1_d'].frames[0]) self.n1_layer_d.set_target_position(1521, 625) self.m_layer = dmd.FrameLayer( frame=self.game.animations['target_m_image'].frames[0]) self.m_layer.set_target_position(1621, 625) self.m_layer_d = dmd.FrameLayer( frame=self.game.animations['target_m_d'].frames[0]) self.m_layer_d.set_target_position(1621, 625) self.a_layer = dmd.FrameLayer( frame=self.game.animations['target_a_image'].frames[0]) self.a_layer.set_target_position(1733, 625) self.a_layer_d = dmd.FrameLayer( frame=self.game.animations['target_a_d'].frames[0]) self.a_layer_d.set_target_position(1733, 625) self.n2_layer = dmd.FrameLayer( frame=self.game.animations['target_n2_image'].frames[0]) self.n2_layer.set_target_position(1817, 625) self.n2_layer_d = dmd.FrameLayer( frame=self.game.animations['target_n2_d'].frames[0]) self.n2_layer_d.set_target_position(1817, 625) self.left_layers = [ self.i_layer, self.r_layer, self.o_layer, self.n1_layer ] self.right_layers = [self.m_layer, self.a_layer, self.n2_layer] self.mode_titles = [ "FAST SCORING", "DOUBLE SCORING", "IRONMAN SCORING" ] self.left_tracking = [False, False, False, False] self.right_tracking = [False, False, False]
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