Exemple #1
0
    def __init__(self, machine_type):
        super(ShootALine63, self).__init__(machine_type)
        pygame.mixer.pre_init(44100,-16,2,512)
        self.sound = procgame.sound.SoundController(self)
        self.sound.set_volume(1.0)
        # NOTE: trough_count only counts the number of switches present in the  trough.  It does _not_ count
        #       the number of balls present.   In this game, there  should  be  8  balls.
        self.trough_count = 6

        # Subclass my units unique to this game -  modifications must be made to set up mixers and steppers unique to the game
        # NOTE: 'top' positions are indexed using a 0 index, so the top on a 24 position unit is actually 23.

        self.searchdisc = units.Search("searchdisc", 49)
        self.searchdisc2 = units.Search("searchdisc2", 49)

        #Seach relays
        self.s1 = units.Relay("s1")
        self.s2 = units.Relay("s2")
        self.s3 = units.Relay("s3")
        self.s4 = units.Relay("s4")
        self.s5 = units.Relay("s5")
        self.search_index = units.Relay("search_index")

        #Replay Counter
        self.card1_replay_counter = units.Stepper("card1_replay_counter", 100)
        self.card2_replay_counter = units.Stepper("card2_replay_counter", 100)
        self.card3_replay_counter = units.Stepper("card3_replay_counter", 100)
        self.card4_replay_counter = units.Stepper("card4_replay_counter", 100)
        self.card5_replay_counter = units.Stepper("card5_replay_counter", 100)
        self.card6_replay_counter = units.Stepper("card6_replay_counter", 100)

        #Initialize stepper units used to keep track of features or timing.
        self.selector = units.Stepper("selector", 6)
        self.timer = units.Stepper("timer", 8)
        self.ball_count = units.Stepper("ball_count", 5)

        #Check for status of the replay register zero switch.  If positive
        #and machine is just powered on, this will zero out the replays.
        self.replay_reset = units.Relay("replay_reset")
        
        # Now, the control unit can be in one of two positions, essentially.
        # This alternates by coin, and is used to portion the Spotted Numbers.
        self.cu = 1

        #When engage()d, light 6v circuit, and enable game features, scoring,
        #etc. Disengage()d means that the machine is 'soft' tilted. 
        self.anti_cheat = units.Relay("anti_cheat")

        #When engage()d, spin.
        self.start = units.Relay("start")

        #Tilt is separate from anti-cheat in that the trip will move the shutter
        #when the game is tilted with 1st ball in the lane.  Also prevents you
        #from picking back up by killing the anti-cheat.  Can be engaged by 
        #tilt bob, slam tilt switches, or timer at 39th step.
        #Immediately kills motors.
        self.tilt = units.Relay("tilt")

        self.replays = 0
        self.returned = False
Exemple #2
0
    def __init__(self, machine_type):
        super(Crosswords, self).__init__(machine_type)
        pygame.mixer.pre_init(44100, -16, 2, 512)
        self.sound = procgame.sound.SoundController(self)
        self.sound.set_volume(1.0)
        # NOTE: trough_count only counts the number of switches present in the  trough.  It does _not_ count
        #       the number of balls present.   In this game, there  should  be  8  balls.
        self.trough_count = 6

        # Subclass my units unique to this game -  modifications must be made to set up mixers and steppers unique to the game
        # NOTE: 'top' positions are indexed using a 0 index, so the top on a 24 position unit is actually 23.

        self.searchdisc = units.Search("searchdisc", 49)
        self.searchdisc2 = units.Search("searchdisc2", 49)

        #Seach relays
        self.s1 = units.Relay("s1")
        self.s2 = units.Relay("s2")
        self.s3 = units.Relay("s3")
        self.s4 = units.Relay("s4")
        self.s5 = units.Relay("s5")
        self.search_index = units.Relay("search_index")

        #Replay Counter
        self.card1_replay_counter = units.Stepper("card1_replay_counter", 100)
        self.card2_replay_counter = units.Stepper("card2_replay_counter", 100)
        self.card3_replay_counter = units.Stepper("card3_replay_counter", 100)
        self.card4_replay_counter = units.Stepper("card4_replay_counter", 100)

        #Hole in One uses a specialized scoring system, tracking your shots - as does this game.
        self.average = units.Relay("average")
        self.good = units.Relay("good")
        self.expert = units.Relay("expert")

        #Initialize stepper units used to keep track of features or timing.
        self.selector = units.Stepper("selector", 4)
        self.timer = units.Stepper("timer", 40)
        self.ball_count = units.Stepper("ball_count", 5)

        #When engage()d, light 6v circuit, and enable game features, scoring,
        #etc. Disengage()d means that the machine is 'soft' tilted.
        self.anti_cheat = units.Relay("anti_cheat")

        #When engage()d, spin.
        self.start = units.Relay("start")

        #Tilt is separate from anti-cheat in that the trip will move the shutter
        #when the game is tilted with 1st ball in the lane.  Also prevents you
        #from picking back up by killing the anti-cheat.  Can be engaged by
        #tilt bob, slam tilt switches, or timer at 39th step.
        #Immediately kills motors.
        self.tilt = units.Relay("tilt")

        self.replays = 0
        self.returned = False
Exemple #3
0
    def __init__(self, game, selection, select):
        super(MainMenu, self).__init__(game=game, priority=5)
        self.game.replays = 0
        self.game.select = select
        self.game.selection = selection
        self.game.anti_cheat = units.Relay("anti_cheat")
        self.game.green_three_as_five = units.Relay("green_three_as_five")
        self.game.yellow_three_as_four = units.Relay("yellow_three_as_four")
        self.game.red_three_as_four = units.Relay("red_three_as_four")
        self.game.super_card_trip = units.Relay("super_card_trip")
        self.game.super_card1 = units.Relay("super_card1")
        self.game.super_card2 = units.Relay("super_card2")
        self.game.super_line1 = units.Relay("super_line1")
        self.game.super_line2 = units.Relay("super_line2")
        self.game.super_card_replay_counter = units.Stepper(
            "super_card_replay_counter", 400)
        self.game.feature = units.Stepper("feature", 6)
        self.game.curtains = units.Stepper("curtains", 6)
        self.game.lines = units.Stepper("lines", 6)
        self.game.before_fourth = units.Relay("before_fourth")
        self.game.searched = units.Relay("searched")
        self.game.before_fifth = units.Relay("before_fifth")
        self.game.lock = units.Relay("lock")
        self.game.tilt = units.Relay("tilt")
        self.game.liteaname = units.Relay("liteaname")
        self.game.eight_balls = units.Relay("eight_balls")
        self.game.three_as_four = units.Relay("three_as_four")
        self.game.four_as_five = units.Relay("four_as_five")
        self.game.selector = units.Stepper("selector", 6)
        self.game.name = units.Stepper("name", 6)
        self.game.select_card = units.Stepper("select_card", 6)
        self.game.card = units.Stepper("card", 6)
        self.game.spotting = units.Stepper("spotting", 49)
        self.game.eb_play = units.Relay("eb_play")
        self.game.eb = units.Relay("eb")
        self.game.spotted_numbers = units.Stepper("spotted_numbers", 8)
        self.game.ball_count = units.Stepper("ball_count", 8)
        self.game.ball_return = units.Stepper("ball_return", 15)
        self.game.extra_ball = units.Stepper("extra_ball", 3)
        self.game.double = units.Relay("double")
        self.game.double1 = units.Relay("double1")
        self.game.double2 = units.Relay("double2")
        self.game.double3 = units.Relay("double3")
        self.game.b_return = units.Relay("b_return")
        self.game.ball_return_played = units.Relay("ball_return_played")
        self.game.diagonal_score = units.Relay("diagonal_score")
        self.game.all_advantages = units.Relay("all_advantages")
        self.game.special_feature = units.Relay("special_feature")
        self.game.special_1 = units.Relay("special_1")
        self.game.special_2 = units.Relay("special_2")
        self.game.special_3 = units.Relay("special_3")
        self.game.special_4 = units.Relay("special_4")
        self.game.special_5 = units.Relay("special_5")
        self.game.special_6 = units.Relay("special_6")
        self.game.c1_double = units.Relay("c1_double")
        self.game.c2_double = units.Relay("c2_double")
        self.game.c3_double = units.Relay("c3_double")
        self.game.c4_double = units.Relay("c4_double")
        self.game.c5_double = units.Relay("c5_double")
        self.game.c6_double = units.Relay("c6_double")
        self.game.c1_triple = units.Relay("c1_triple")
        self.game.c2_triple = units.Relay("c2_triple")
        self.game.c3_triple = units.Relay("c3_triple")
        self.game.c4_triple = units.Relay("c4_triple")
        self.game.c5_triple = units.Relay("c5_triple")
        self.game.c6_triple = units.Relay("c6_triple")
        self.game.all_double = units.Relay("all_double")
        self.game.all_triple = units.Relay("all_triple")
        self.game.corners = units.Relay("corners")
        self.game.super_corners = units.Relay("super_corners")
        self.game.golden = units.Relay("golden")
        self.game.gate = units.Relay("gate")
        self.game.two_gold = units.Relay("two_gold")
        self.game.odds = units.Stepper("odds", 10)
        self.game.green_odds = units.Stepper("green_odds", 10)
        self.game.red_odds = units.Stepper("red_odds", 10)
        self.game.yellow_odds = units.Stepper("yellow_odds", 10)
        self.game.white_odds = units.Stepper("white_odds", 10)
        self.game.gold_odds = units.Stepper("gold_odds", 10)
        self.game.odds_only = units.Relay("odds_only")
        self.game.features = units.Relay("features")
        self.game.orange_section = units.Relay("orange_section")
        self.game.red_super_section = units.Relay("red_super_section")
        self.game.yellow_super_section = units.Relay("yellow_super_section")
        self.game.futurity = units.Stepper("futurity", 12)
        self.game.ok = units.Relay("ok")
        self.game.four_stars = units.Relay("four_stars")
        self.game.hole_feature = units.Relay("hole_feature")
        self.game.spot_16 = units.Relay("spot_16")
        self.game.super_line_feature = units.Relay("super_line_feature")
        self.game.extra_ok = units.Relay("extra_ok")
        self.game.super_ok = units.Relay("super_ok")
        self.game.delay = units.Relay("delay")
        self.game.super_card = units.Stepper("super_card", 8)
        self.game.selection_feature = units.Stepper("selection_feature", 8)
        self.game.magic_screen_feature = units.Stepper("magic_screen_feature",
                                                       8)
        self.game.magic_numbers_feature = units.Stepper(
            "magic_numbers_feature", 8)
        self.game.roto_feature = units.Relay("roto_feature")
        self.game.roto_feature_step = units.Stepper("roto_feature_step", 8)
        self.game.super_horizontal = units.Relay("super_horizontal")
        self.game.horizontal = units.Stepper("horizontal", 8)
        self.game.special_odds = units.Stepper("special_odds", 8)
        self.game.special_game = units.Stepper("special_game", 8)
        self.game.special_replay_counter = units.Stepper(
            "special_replay_counter", 8)
        self.game.red_replay_counter = units.Stepper("red_replay_counter", 8)
        self.game.yellow_replay_counter = units.Stepper(
            "yellow_replay_counter", 8)
        self.game.green_replay_counter = units.Stepper("green_replay_counter",
                                                       8)
        self.game.twin_number = units.Stepper("twin_number", 8)
        self.game.color_selector = units.Stepper("color_selector", 8)
        self.game.score_select = units.Stepper("score_select", 8)
        self.game.x_feature = units.Stepper("x_feature", 8)
        self.game.magic_lines = units.Stepper("magic_lines", 8)
        self.game.hold_feature = units.Stepper("hold_feature", 8)
        self.game.m_lines = units.Relay("m_lines")
        self.game.super_score = units.Relay("super_score")
        self.game.magic_pockets = units.Relay("magic_pockets")
        self.game.spot_10 = units.Relay("spot_10")
        self.game.spot_25 = units.Relay("spot_25")
        self.game.bonus = units.Stepper("bonus", 8)
        self.game.ring = units.Stepper("ring", 8)
        self.game.two_suns = units.Relay("two_suns")
        self.game.double_double = units.Relay("double_double")
        self.game.double_up = units.Relay("double_up")
        self.game.double_colors = units.Stepper("double_colors", 8)
        self.game.wheel = units.Stepper("wheel", 8)
        self.game.three_suns = units.Relay("three_suns")
        self.game.top_odds = units.Relay("top_odds")
        self.game.missed = units.Relay("missed")
        self.game.red_star = units.Relay("red_star")
        self.game.red_rollover = units.Relay("red_rollover")
        self.game.special = units.Relay("special")
        self.game.triple = units.Relay("triple")
        self.game.yellow_star = units.Relay("yellow_star")
        self.game.yellow_rollover = units.Relay("yellow_rollover")
        self.game.corners1 = units.Relay("corners1")
        self.game.corners2 = units.Relay("corners2")
        self.game.corners3 = units.Relay("corners3")
        self.game.corners4 = units.Relay("corners4")
        self.game.corners5 = units.Relay("corners5")
        self.game.corners6 = units.Relay("corners6")
        self.game.select_spots = units.Relay("select_spots")
        self.game.fss = units.Relay("fss")
        self.game.fnt = units.Relay("fnt")
        self.game.sixteen = units.Relay("sixteen")
        self.game.fourteen_eighteen = units.Relay("fourteen_eighteen")
        self.game.fifteen_seventeen = units.Relay("fifteen_seventeen")
        self.game.fifteen = units.Relay("fifteen")
        self.game.seventeen = units.Relay("seventeen")
        self.game.twenty = units.Relay("twenty")
        self.game.twentyone = units.Relay("twentyone")
        self.game.twentytwo = units.Relay("twentytwo")
        self.game.good = units.Relay("good")
        self.game.excellent = units.Relay("excellent")
        self.game.superior = units.Relay("superior")
        self.game.dd1 = units.Relay("dd1")
        self.game.dd2 = units.Relay("dd2")
        self.game.dd3 = units.Relay("dd3")
        self.game.dd4 = units.Relay("dd4")
        self.game.dd5 = units.Relay("dd5")
        self.game.dd6 = units.Relay("dd6")
        self.game.before_third = units.Relay("before_third")
        self.game.before_fourth = units.Relay("before_fourth")
        self.game.top_score = units.Relay("top_score")
        self.game.cornersone_three = units.Relay("cornersone_three")
        self.game.cornerstwo_three = units.Relay("cornerstwo_three")
        self.game.cornersone_four = units.Relay("cornersone_four")
        self.game.cornerstwo_four = units.Relay("cornerstwo_four")

        self.game.roto = units.Stepper("roto", 6)
        self.game.roto2 = units.Stepper("roto2", 6)
        self.game.numbera = units.Stepper("numbera", 6)
        self.game.numberb = units.Stepper("numberb", 6)
        self.game.numberc = units.Stepper("numberc", 6)
        self.game.numberd = units.Stepper("numberd", 6)
        self.game.each_card = units.Stepper("each_card", 6)
        self.game.bump_feature = units.Stepper("bump_feature", 6)
        self.game.e_card = units.Relay("e_card")
        self.game.average = units.Relay("average")
        self.game.expert = units.Relay("expert")
        self.game.m_pockets = units.Stepper("m_pockets", 4)
        self.game.wild_pockets = units.Stepper("wild_pockets", 9)
        self.game.special_pocket = units.Relay("special_pocket")
        self.game.super_diagonal = units.Relay("super_diagonal")
        self.game.diagonal = units.Relay("diagonal")
        self.game.diagonal_separate = units.Stepper("diagonal_separate", 9)
        self.game.diagonals_relay = units.Relay("diagonals_relay")
        self.game.row1 = units.Relay("row1")
        self.game.row2 = units.Relay("row2")
        self.game.row3 = units.Relay("row3")
        self.game.pocket = units.Stepper("pocket", 5)
        self.game.diagonals = units.Stepper("diagonals", 5)
        self.game.diagonal_scoring = units.Stepper("diagonal_scoring", 9)
        self.game.super_super_card = units.Stepper("super_super_card", 9)

        self.game.magic_screen = units.Stepper("magic_screen", 15)
        self.game.line = units.Stepper("line", 3)
        self.game.line_feature = units.Stepper("line_feature", 3)
        self.game.line1 = units.Stepper("line1", 3)
        self.game.line2 = units.Stepper("line2", 3)
        self.game.line3 = units.Stepper("line3", 3)
        self.game.line4 = units.Stepper("line4", 3)
        self.game.line5 = units.Stepper("line5", 3)
        self.game.magic_lines_feature = units.Stepper("magic_lines_feature", 5)
        self.game.magic_card = units.Stepper("magic_card", 15)
        self.game.spot = units.Stepper("spot", 15)
        self.game.coin = units.Stepper("coin", 50)
        self.game.magic = []
        self.game.two_red_letter = units.Relay("two_red_letter")
        self.game.three_red_letter = units.Relay("three_red_letter")
        self.game.magic_spot = units.Relay("magic_spot")
        self.game.three_stars = units.Relay("three_stars")
        self.game.gate_open = units.Relay("gate_open")
        self.game.six_stars = units.Relay("six_stars")
        self.game.double_red = units.Relay("double_red")
        self.game.double_yellow = units.Relay("double_yellow")
        self.game.double_green = units.Relay("double_green")
        self.game.double_blue = units.Relay("double_blue")
        self.game.mystery_red = units.Relay("mystery_red")
        self.game.mystery_yellow = units.Relay("mystery_yellow")
        self.game.corners384 = units.Relay("corners384")
        self.game.corners300 = units.Relay("corners300")
        self.game.corners192 = units.Relay("corners192")
        self.game.start = units.Relay("start")
        self.game.search_index = units.Relay("search_index")
        self.game.nothing = units.Relay("nothing")
        self.game.onetwothree = units.Relay("onetwothree")
        self.game.fourfivesix = units.Relay("fourfivesix")
        self.game.selection_feature_relay = units.Relay(
            "selection_feature_relay")
        self.game.left_special_card = units.Relay("left_special_card")
        self.game.right_special_card = units.Relay("right_special_card")
        self.game.letter_r = units.Relay("letter_r")
        self.game.letter_i = units.Relay("letter_i")
        self.game.letter_o = units.Relay("letter_o")
        self.game.letter_ha = units.Relay("letter_ha")
        self.game.letter_va = units.Relay("letter_va")
        self.game.letter_na = units.Relay("letter_na")
        self.game.letter_me = units.Relay("letter_me")
        self.game.letter_xi = units.Relay("letter_xi")
        self.game.letter_co = units.Relay("letter_co")
        self.game.one_seven_feature = units.Relay("one_seven_feature")
        self.game.one_seven = units.Relay("one_seven")
        self.game.seven_one = units.Relay("seven_one")
        self.game.lite_a_name = units.Relay("lite_a_name")
        self.game.rollovers = units.Relay("rollovers")
        self.game.diamond_diagonal = units.Relay("diamond_diagonal")

        self.game.super1 = units.Relay("super1")
        self.game.super2 = units.Relay("super2")
        self.game.super3 = units.Relay("super3")
        self.game.super4 = units.Relay("super4")
        self.game.super5 = units.Relay("super5")
        self.game.super6 = units.Relay("super6")

        self.game.card1_double = units.Relay("card1_double")
        self.game.card2_double = units.Relay("card2_double")
        self.game.card3_double = units.Relay("card3_double")
        self.game.card4_double = units.Relay("card4_double")
        self.game.card5_double = units.Relay("card5_double")
        self.game.card6_double = units.Relay("card6_double")

        self.game.red_double = units.Relay("red_double")
        self.game.yellow_double = units.Relay("yellow_double")
        self.game.green_double = units.Relay("green_double")
        self.game.white_double = units.Relay("white_double")

        self.game.red_missed = units.Relay("red_missed")
        self.game.yellow_missed = units.Relay("yellow_missed")
        self.game.green_missed = units.Relay("green_missed")
        self.game.white_missed = units.Relay("white_missed")

        self.game.red_regular = units.Relay("red_regular")
        self.game.yellow_regular = units.Relay("yellow_regular")
        self.game.green_regular = units.Relay("green_regular")
        self.game.white_regular = units.Relay("white_regular")

        self.game.cam4 = units.Stepper("cam4", 3, "menu", "continuous")
        self.game.square_a = units.Stepper("square_a", 3, "menu", "continuous")
        self.game.square_b = units.Stepper("square_b", 3, "menu", "continuous")
        self.game.square_c = units.Stepper("square_c", 3, "menu", "continuous")
        self.game.square_d = units.Stepper("square_d", 3, "menu", "continuous")
        self.game.square_e = units.Stepper("square_e", 3, "menu", "continuous")
        self.game.line_f = units.Stepper("line_f", 3, "menu", "continuous")
        self.game.magic_line_f = units.Relay("magic_line_f")
        self.game.red_line = units.Stepper("red_line", 8)
        self.game.yellow_line = units.Stepper("yellow_line", 8)
        self.game.green_line = units.Stepper("green_line", 8)
        self.game.magic_squares_feature = units.Stepper(
            "magic_squares_feature", 10)
        self.game.ballyhole = units.Relay("ballyhole")
        self.game.top_line = units.Relay("top_line")
        self.game.bottom_line = units.Relay("bottom_line")
        self.game.spot_12 = units.Relay("spot_12")
        self.game.spot_13 = units.Relay("spot_13")
        self.game.game1 = units.Relay("game1")
        self.game.game2 = units.Relay("game2")
        self.game.shop_three = units.Relay("shop_three")
        self.game.shop_four = units.Relay("shop_four")
        self.game.score_feature = units.Stepper("score_feature", 8)
        self.game.magic_line = units.Relay("magic_line")
        self.game.select_a_score = units.Relay("select_a_score")
        self.game.kod = units.Relay("kod")
        self.game.koh = units.Relay("koh")
        self.game.koc = units.Relay("koc")
        self.game.kos = units.Relay("kos")
        self.game.qod = units.Relay("qod")
        self.game.qoh = units.Relay("qoh")
        self.game.qoc = units.Relay("qoc")
        self.game.qos = units.Relay("qos")
        self.game.tod = units.Relay("tod")
        self.game.toh = units.Relay("toh")
        self.game.toc = units.Relay("toc")
        self.game.tos = units.Relay("tos")
        self.game.nod = units.Relay("nod")
        self.game.noh = units.Relay("noh")
        self.game.noc = units.Relay("noc")
        self.game.nos = units.Relay("nos")
        self.game.aos = units.Relay("aos")
        self.game.aod = units.Relay("aod")
        self.game.aoh = units.Relay("aoh")
        self.game.aoc = units.Relay("aoc")
        self.game.joh = units.Relay("joh")
        self.game.jod = units.Relay("jod")
        self.game.jos = units.Relay("jos")
        self.game.joc = units.Relay("joc")
        self.game.joker = units.Relay("joker")
        self.game.player2 = units.Relay("player2")
        self.game.tilt2 = units.Relay("tilt2")

        self.game.odds1 = units.Stepper("odds1", 5)
        self.game.odds2 = units.Stepper("odds2", 5)
        self.game.blue_odds = units.Stepper("blue_odds", 12)
        self.game.orange_odds = units.Stepper("orange_odds", 12)

        self.game.card1_missed = units.Relay("card1_missed")
        self.game.card2_missed = units.Relay("card2_missed")
        self.game.card3_missed = units.Relay("card3_missed")
        self.game.card4_missed = units.Relay("card4_missed")
        self.game.card5_missed = units.Relay("card5_missed")
        self.game.card6_missed = units.Relay("card6_missed")

        self.game.mystic_lines = units.Stepper("mystic_lines", 6)

        self.game.ss = units.Relay("ss")
        self.game.skill_shot_scores = units.Stepper("skill_shot_scores", 20)
        self.game.skill_shot_replay_counter = units.Stepper(
            "skill_shot_replay_counter", 120)
        self.game.skill_shot_reflex = units.Reflex("skill_shot_reflex", 200)
        self.game.skill_shot_missed = units.Relay("skill_shot_missed")
        self.game.skill_shot_selection = []

        self.game.card1_replay_counter = units.Stepper("card1_replay_counter",
                                                       300)
        self.game.card2_replay_counter = units.Stepper("card2_replay_counter",
                                                       300)
        self.game.card3_replay_counter = units.Stepper("card3_replay_counter",
                                                       300)
        self.game.card4_replay_counter = units.Stepper("card4_replay_counter",
                                                       300)
        self.game.card5_replay_counter = units.Stepper("card5_replay_counter",
                                                       300)
        self.game.card6_replay_counter = units.Stepper("card6_replay_counter",
                                                       300)

        self.holes = []
        self.holes2 = []

        selection[select]
        __import__("bingo_emulator.graphics.%s" % (selection[select]))
        g = "graphics.%s.display(self,0,True)" % (selection[select])
        eval(g)
Exemple #4
0
    def __init__(self, machine_type):
        super(ConeyIsland, self).__init__(machine_type)
        pygame.mixer.pre_init(44100, -16, 2, 512)
        self.sound = procgame.sound.SoundController(self)
        self.sound.set_volume(1.0)
        # NOTE: trough_count only counts the number of switches present in the  trough.  It does _not_ count
        #       the number of balls present.   In this game, there  should  be  8  balls.
        self.trough_count = 6

        # Subclass my units unique to this game -  modifications must be made to set up mixers and steppers unique to the game
        # NOTE: 'top' positions are indexed using a 0 index, so the top on a 24 position unit is actually 23.

        # Initialize reflex(es) and mixers unique to this game
        # NOTE: reflex unit drawing was not available for this game, so until I convince
        #       another Coney Island owner to take their game apart, I'll note that there
        #       are four lugs, three of which provides another path to the mixer, and one which is always connected
        #       and bypasses the mixer entirely.  There are no games from 1951 or 52 that have the reflex documented.
        self.reflex = units.Reflex("primary", 100)

        #Initialize the mixer units
        # NOTE: the mixers are not documented for this game either.  However, there are three different lugs connected.
        #	I will guess that 3/24 of all lugs are blanks, though looking at the docs for Bally Beauty shows that
        #	only 3/24 positions are not connected. Many of the other early games show similar patterns.
        self.mixer = units.Mixer("mixer", 23)

        self.spotting = units.Spotting("spotting", 50)
        self.searchdisc = units.Search("searchdisc", 49)

        #Seach relays
        self.s1 = units.Relay("s1")
        self.s2 = units.Relay("s2")
        self.s3 = units.Relay("s3")
        self.s4 = units.Relay("s4")
        self.s5 = units.Relay("s5")
        self.search_index = units.Relay("search_index")

        #Replay Counter
        self.card1_replay_counter = units.Stepper("card1_replay_counter", 100)
        self.card2_replay_counter = units.Stepper("card2_replay_counter", 100)
        self.card3_replay_counter = units.Stepper("card3_replay_counter", 100)

        #Initialize stepper units used to keep track of features or timing.
        self.selector = units.Stepper("selector", 3)
        self.ebselector = units.Stepper("ebselector", 7)
        self.timer = units.Stepper("timer", 40)
        self.ball_count = units.Stepper("ball_count", 8)
        self.extra_ball = units.Stepper("extra_ball", 3)

        #Check for status of the replay register zero switch.  If positive
        #and machine is just powered on, this will zero out the replays.
        self.replay_reset = units.Relay("replay_reset")

        #When engage()d, light 6v circuit, and enable game features, scoring,
        #etc. Disengage()d means that the machine is 'soft' tilted.
        self.anti_cheat = units.Relay("anti_cheat")

        #When engage()d, spin.
        self.start = units.Relay("start")

        # When engage()d, allow for play for EB.  Engages with the press of the yellow button.
        # does not allow for play if there are no credits on the meter, nor if the EB unit is
        # at the top. Also does not allow for play if the timer has shut off.  You cannot revive
        # older games with a press of a yellow button like you can with games with an 8 step timer.
        self.eb_play = units.Relay("eb_play")

        #Tilt is separate from anti-cheat in that the trip will move the shutter
        #when the game is tilted with 1st ball in the lane.  Also prevents you
        #from picking back up by killing the anti-cheat.  Can be engaged by
        #tilt bob, slam tilt switches, or timer at 39th step.
        #Immediately kills motors.
        self.tilt = units.Relay("tilt")

        self.replays = 0
        self.returned = False