Пример #1
0
    def __init__(self):
        SceneBase.__init__(self)

        #musique
        self.MX = []
        self.MX.append('assets/audio/MX/DirtySoil.ogg')
        self.MX.append('assets/audio/MX/DystopianBallad.ogg')
        self.MX.append('assets/audio/MX/LazyBartender.ogg')
        self.MX.append('assets/audio/MX/LostInParadise.ogg')
        self.MX.append('assets/audio/MX/PapayaJuice.ogg')
        self.MX.append('assets/audio/MX/RetroDance.ogg')
        self.MX.append('assets/audio/MX/SunnyBeach.ogg')
        self.MX.append('assets/audio/MX/TimeTraveler.ogg')
        self.MX.append('assets/audio/MX/WeirdJungle.ogg')
        self.MX.append('assets/audio/MX/WhereAreYou.ogg')

        self.SetupMimo()

        # initialize state
        # setup the layout for the scene
        self.SetupLayout()
        
        # load event, title, description, objective and material
        # currento_evento = int(random.random() * 4)

        if constants.currento_evento == 3:
            constants.currento_evento = -1
        constants.currento_evento += 1
        self.LoadEvent(news[constants.currento_evento])
Пример #2
0
    def __init__(self):
        SceneBase.__init__(self)
        self.HWSetup()

        subtitlefont = pygame.font.Font(constants.VCR_OSD_MONO,
                                        constants.FONT_SUBTITLE)
        self.subtitle = utils.Text("", subtitlefont)
        self.subtitle.SetPosition(constants.VIEWPORT_CENTER_X, 610)

        self.intro_subtitles = [
            {
                "text":
                "M corp le da la bienvenida y agradece su participacion\nen esta prueba de seleccion.",
                "image": ""
            },
            {
                "text":
                "Esta prueba evaluara su capacidad para editar y presentar\nnoticias segun las necesidades propuestas por las directivas.",
                "image": ""
            },
            {
                "text":
                "Ante usted tiene la mas reciente version de nuestro modulador\n de mentes, M.i.M.o 3.2.\n\nRecibira una induccion basica y suficiente para operar esta maquina.",
                "image": ""
            },
            {
                "text":
                "Toda la operacion que haga sobre la maquina sera grabada\ny almacenada para nuestro posterior analisis.",
                "image": ""
            },
        ]
        self.intro_subtitles_index = -1
        self.textLoader = None
        self.LoadNextSubtitle()
Пример #3
0
 def __init__(self):
     SceneBase.__init__(self)
     mimo.reset()
     self.percentage = 0
     mimo.set_led_brightness(120)
     mimo.set_independent_lights(True, True)
     # check ring and bulbs leds
     self.AddTrigger(1, self, 'LoadRing')
Пример #4
0
    def __init__(self):
        SceneBase.__init__(self)
        self.HWSetup()

        # initialize state
        self.pressed_keys = 0

        # setup the layout for the scene
        self.SetupLayout()
Пример #5
0
    def __init__(self):
        SceneBase.__init__(self)
        self.HWSetup()

        # initialize state
        self.instruction_msg = "press (w) and (i) to start editing the news"
        self.loading_msg = "facts incoming..."
        self.loading = False
        self.countdown = 3000

        # setup the layout for the scene
        self.SetupLayout()
Пример #6
0
    def __init__(self):
        SceneBase.__init__(self)

        # -- initialize state --------------------------------------------------
        self.state = STATUS.PLAYING
        # in milliseconds
        self.countdown = 20000
        self.current_time = 20000
        self.popup_active = False
        self.score = 0

        self.SetupMimo()

        # -- setup layout ------------------------------------------------------
        self.SetupLayout()
        self.SetupPopup()
Пример #7
0
    def Update(self, dt):
        SceneBase.Update(self, dt)

        if self.no_facts: return

        if self.showing_minigame_tutorial:
            self.minigame_preview.updateFrame(dt)

            ring.fill_percentage(self.percentage)
Пример #8
0
    def Update(self, dt):
        SceneBase.Update(self, dt)

        if self.IsPlaying():
            self.current_time -= int(1000 * dt)
            if self.current_time < 0:
                self.FinishOptimization()
                self.current_time = 0
            self.timerprogress = self.current_time / self.countdown
            ring.fill_percentage(self.timerprogress)
Пример #9
0
    def __init__(self):
        SceneBase.__init__(self)
        mimo.reset()

        mimo.set_led_brightness(120)
        mimo.set_independent_lights(True, True)
        # check ring and bulbs leds
        factor = 0.2
        loops = 50
        n_leds = 28
        leds = list(range(0, 28))
        for index in range(0, n_leds * loops):
            led_i = leds[index % n_leds]
            self.AddTrigger((1.5 + index) * factor, mimo,
                            'set_material_leds_color', [
                                led_i,
                                int(random.random() * 255),
                                int(random.random() * 255),
                                int(random.random() * 255)
                            ])
            self.AddTrigger((1.5 + index + 0.9) * factor, mimo,
                            'set_material_leds_color', [led_i, 0, 0, 0])

        n_leds = 69
        leds = list(range(0, 69))
        for index in range(0, n_leds * loops):
            led_i = leds[index % n_leds]
            self.AddTrigger((1.5 + index) * factor, mimo,
                            'set_optimization_leds_color', [
                                led_i,
                                int(random.random() * 255),
                                int(random.random() * 255),
                                int(random.random() * 255)
                            ])
            self.AddTrigger((1.5 + index + 0.9) * factor, mimo,
                            'set_optimization_leds_color', [led_i, 0, 0, 0])
Пример #10
0
 def Update(self, dt):
     SceneBase.Update(self, dt)
     if self.textLoader.update(dt):
         self.subtitle.SetText(self.textLoader.current_text)
Пример #11
0
 def Update(self, dt):
     SceneBase.Update(self, dt)
Пример #12
0
    def __init__(self):
        SceneBase.__init__(self)

        # initialize state
        self.image_positions = [
            { 'x': 400, 'y': 500 },
            { 'x': 400 + 340, 'y': 500 },
            { 'x': 400 + (340 * 2), 'y': 500 },
            { 'x': 400 + (340 * 3), 'y': 500 }
        ]
        self.sequence = [-1, -1, -1, -1]
        self.material = [False, False, False, False, False, False]
        self.busy_slots = 0
        self.popupActive = False
        self.can_optimize = False
        self.showing_minigame_tutorial = False
        self.selected_minigame = ""
        self.impact = 0
        self.mtl_switcher = {
            0: self.hook,
            1: self.plot,
            2: self.plot,
            3: self.conclusion
        }
        self.available_minigames = []
        self.no_facts = False

        # Cargar el arreglo de direcciones pa' la musique
        self.MX = []
        self.MX.append('assets/audio/MX/DirtySoil.ogg')
        self.MX.append('assets/audio/MX/DystopianBallad.ogg')
        self.MX.append('assets/audio/MX/LazyBartender.ogg')
        self.MX.append('assets/audio/MX/LostInParadise.ogg')
        self.MX.append('assets/audio/MX/PapayaJuice.ogg')
        self.MX.append('assets/audio/MX/RetroDance.ogg')
        self.MX.append('assets/audio/MX/SunnyBeach.ogg')
        self.MX.append('assets/audio/MX/TimeTraveler.ogg')
        self.MX.append('assets/audio/MX/WeirdJungle.ogg')
        self.MX.append('assets/audio/MX/WhereAreYou.ogg')

        # Cargar arreglos de SFX
        audio_path = 'assets/audio/SFX/M_OS/'

        self.UI_MatSel = []
        self.UI_MatSel.append(utils.get_sound(audio_path + 'UI_MatSel_01.ogg'))
        self.UI_MatSel.append(utils.get_sound(audio_path + 'UI_MatSel_02.ogg'))
        self.UI_MatSel.append(utils.get_sound(audio_path + 'UI_MatSel_03.ogg'))
        self.UI_MatSel.append(utils.get_sound(audio_path + 'UI_MatSel_04.ogg'))

        self.UI_EndGame = utils.get_sound(audio_path + 'UI_EndGame.ogg')
        self.UI_EndGame.set_volume(1)

        self.UI_SwitchScene = utils.get_sound('assets/audio/SFX/Scanning/MG1_ObjSort.ogg')

        # Preparar la máquina para la destrucción
        self.SetupMimo()

        # ─────────────────────────────────────────────────────────────────────┐
        # obtener el hecho o ir a la pantalla de resultados
        if constants.currento_evento == len(news):
            self.no_facts = True
            self.AddTrigger(0.16, self, 'SwitchToScene', "Results")
            constants.currento_evento = 0

        self.current_event = news[constants.currento_evento]
        self.current_frame = '???'

        constants.currento_evento += 1

        # obtener el material del hecho
        self.event_mtl = self.current_event['material']
        # ─────────────────────────────────────────────────────────────────────┘

        # setup the layout for the scene
        self.SetupLayout()

        self.images = []
        self.details = []
        for mtl in self.event_mtl:
            mtl_dtl = utils.Text(
                mtl['detail'][constants.language],
                self.normal_font,
                color = constants.PALETTE_TEXT_CYAN
            )
            mtl_dtl.setAnchor(0, 0)
            mtl_img = utils.Sprite(constants.MATERIAL + mtl['img'])
            mtl_img.SetOpacity(64)

            self.images.append(mtl_img)
            self.details.append(mtl_dtl)

        material_indexes = [0, 1, 2, 4, 5, 6]
        index = 0
        # set buttons to switch mode
        for material in self.current_event['material']:
            line1_text = utils.align_text(material['label'][constants.language][0], index < 3, 16, ' ')
            line2_text = utils.align_text(material['label'][constants.language][1], index < 3, 16, ' ')
            
            mimo.set_material_buttons_light([index] + material['color'])
            #mimo.set_material_leds_color([material_indexes[index]] + material['color'])
            
            mimo.lcd_display_at(index, line1_text, 1)
            mimo.lcd_display_at(index, line2_text, 2)

            index += 1
Пример #13
0
    def Update(self, dt):
        SceneBase.Update(self, dt)

        self.countdown -= int(1000 * dt) if self.loading else 0
        if self.countdown < 0:
            self.SwitchToScene("Begin")
Пример #14
0
    def __init__(self):
        SceneBase.__init__(self)
        mimo.reset()

        self.logo = utils.Sprite('assets/sprites/logo_MCorp.png', 1280 / 2,
                                 720 / 2)
        self.logo.opacity = 0

        self.sfx_mimo_logo = utils.get_sound('assets/audio/SFX/MimoLogo.ogg')

        self.AddTween("easeInOutSine", 2, self.logo, "opacity", 0, 255, 1)
        self.AddTrigger(1, self.sfx_mimo_logo, 'play')

        #self.comm.opt.set_led_brightness(50)
        #mimo.set_led_brightness(250)
        #self.comm.opt.lock_buttons([3, 0, 4, 0])
        #mimo.set_optimization_leds_color([0, 255, 0, 0])
        #mimo.set_optimization_leds_color([1, 0, 255, 0])
        #mimo.set_optimization_leds_color([2, 0, 0, 255])
        #mimo.set_optimization_leds_color([3, 255, 0, 0])
        #mimo.set_optimization_leds_color([4, 255, 255, 255])
        #mimo.set_independent_lights(False, True)
        #mimo.set_independent_lights(True, True)
        #mimo.set_buttons_enable_status(True, True)
        #mimo.set_optimization_buttons_lock_status([0,0,1,0,2,0,3,0,4,0])
        #mimo.set_material_buttons_lock_status([0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0])
        #mimo.set_tunners_enable_status(False)
        #mimo.set_optimization_leds_color([2, 255,0,255])
        #mimo.set_optimization_leds_color([5, 255,0,255])
        #mimo.set_optimization_leds_color([19, 255,0,255])
        #mimo.set_optimization_leds_color([27, 255,0,0])
        #mimo.set_optimization_leds_color([28, 255,255])
        #mimo.set_optimization_leds_color([29, 255,0,255])
        #mimo.set_optimization_leds_color([30, 255,0,255])
        factor = 0.05
        loops = 100
        n_leds = 64 + 5
        #for index in range(0, n_leds*loops):
        #    self.AddTrigger((1+index)*factor, mimo, 'set_optimization_leds_color', [index%n_leds, int(random.random()*255), int(random.random()*255), int(random.random()*255)])
        #    self.AddTrigger((1+index+0.9)*factor, mimo, 'set_optimization_leds_color', [index%n_leds, 0, 0, 0])

        n_leds = 64
        leds = list(range(0, 64))
        #for index in range(0, n_leds*loops):
        #    led_i = leds[index%n_leds] + 5
        #    self.AddTrigger((1.5+index)*factor, mimo, 'set_optimization_leds_color', [led_i, int(random.random()*255), int(random.random()*255), int(random.random()*255)])
        #    self.AddTrigger((1.5+index+0.9)*factor, mimo, 'set_optimization_leds_color', [led_i, 0, 0, 0])
        #self.comm.opt.activate_buttons(True)
        mimo.set_buttons_enable_status(True, True)
        mimo.set_independent_lights(False, False)
        mimo.set_led_brightness(250)
        mimo.set_material_buttons_lock_status(
            [0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0])
        mimo.set_material_buttons_mode(
            [0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0])
        mimo.set_optimization_buttons_lock_status(
            [0, 0, 1, 0, 2, 0, 3, 0, 4, 0])
        mimo.set_optimization_buttons_mode([0, 0, 1, 0, 2, 0, 3, 0, 4, 0])
        #self.comm.opt.activate_tunners(False)
        #mimo.set_tunners_enable_status(False)
        #self.comm.opt.set_independent_lights(False)
        #self.comm.opt.clean_matrix()
        #graphics.clear()

        #self.AddTrigger(0, self.comm.mat, 'set_led_light', [1, 125, 125, 0, 1, 255, 255, 0])
        #self.AddTrigger(1, mimo, 'set_material_leds_color', [0, 125, 125, 0, 1, 255, 255, 0])
        #self.AddTrigger(2, self.comm.mat, 'set_led_light', [7, 0, 255, 0])
        #self.AddTrigger(2, mimo, 'set_material_leds_color', [7, 0, 255, 0])
        #self.AddTrigger(3, self.comm.opt, 'set_led_light', [0, 255, 0, 0])
        # debe prender el led del boton de  optimizacion 0
        #self.AddTrigger(3, mimo, 'set_optimization_leds_color', [10, 255, 0, 0])

        mimo.set_tunners_enable_status(True)
        #self.testSprite = AnimatedNeoSprite('assets/tilesprite.png')
        self.testSprite = AnimatedNeoSprite('assets/palomita.png')
        #self.testSprite.setFrameRate(8)
        #self.testSprite.playing = True
        self.label = TextNeoSprite("people")
        #
        self.label.y = 2
        #
        font = pygame.font.Font("assets/fonts/VCR_OSD_MONO_1.001.ttf", 36)
        self.title = utils.Text("Hello Machinaria!", font)
        self.title.opacity = 0
        self.title.SetPosition(400, 200)
        self.AddTween("easeInOutSine", 2, self.title, "opacity", 0, 255, 1)
Пример #15
0
 def __init__(self):
     SceneBase.__init__(self)
     titlefont = pygame.font.Font("assets/fonts/VCR_OSD_MONO_1.001.ttf", 44)
     self.title = utils.Text("Submit scene", titlefont)
     self.title.SetPosition(1280 / 2, 546)
     self.AddTrigger(60, self, 'SwitchToScene', ResultsScene)
Пример #16
0
    def __init__(self):
        SceneBase.__init__(self)
        mimo.reset()

        self.logo = utils.Sprite('assets/sprites/logo_MCorp.png', 1280 / 2,
                                 720 / 2)
        self.logo.opacity = 0

        self.sfx_mimo_logo = utils.get_sound(
            'assets/audio/SFX/M_OS/UI_Booth.ogg')

        self.AddTween("easeInOutSine", 2, self.logo, "opacity", 0, 255, 1)
        self.AddTrigger(1, self.sfx_mimo_logo, 'play')

        # check ring and bulbs leds
        factor = 0.1
        loops = 50
        n_leds = 20
        leds = list(range(8, 28))
        for index in range(0, n_leds * loops):
            led_i = leds[index % n_leds]
            self.AddTrigger((1.5 + index) * factor, mimo,
                            'set_material_leds_color', [
                                led_i,
                                int(random.random() * 255),
                                int(random.random() * 255),
                                int(random.random() * 255)
                            ])
            self.AddTrigger((1.5 + index + 0.9) * factor, mimo,
                            'set_material_leds_color', [led_i, 0, 0, 0])

        # check buttons and backlight buttons.
        mimo.set_buttons_enable_status(True, True)
        mimo.set_independent_lights(False, False)
        mimo.set_led_brightness(120)
        mimo.set_material_buttons_lock_status(
            [0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0])
        mimo.set_material_buttons_mode(
            [0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0])
        mimo.set_optimization_buttons_lock_status(
            [0, 0, 1, 0, 2, 0, 3, 0, 4, 0])
        mimo.set_optimization_buttons_mode([0, 0, 1, 0, 2, 0, 3, 0, 4, 0])

        # activate knobs
        mimo.set_tunners_enable_status(True)

        # create matrix sprite
        self.testSprite = AnimatedNeoSprite('assets/palomita.png')

        self.label = TextNeoSprite("people")
        self.label.y = 2

        font = pygame.font.Font("assets/fonts/VCR_OSD_MONO_1.001.ttf", 36)
        self.title = utils.Text("Hello Machinaria!", font)
        self.title.opacity = 0
        self.title.SetPosition(400, 200)
        self.AddTween("easeInOutSine", 2, self.title, "opacity", 0, 255, 1)

        # check lcd screens
        for index in range(0, 6):
            mimo.lcd_display_at(index, 'id' + str(index) + '- line 1', 1)
            mimo.lcd_display_at(index, 'id' + str(index) + '- line 2', 2)
Пример #17
0
 def Update(self, dt):
     SceneBase.Update(self, dt)
     self.testSprite.update(dt)
     self.label.x -= 0.1
     if self.label.x < -self.label.width:
         self.label.x = 8
Пример #18
0
    def __init__(self):
        SceneBase.__init__(self)

        mimo.set_led_brightness(50)

        self.mimo_blueprint = utils.Sprite('assets/sprites/mimo_blueprint.png',
                                           640, 265)
        self.mimo_blueprint.opacity = 0

        self.printer01 = utils.Sprite('assets/sprites/printer-01.png', 380,
                                      181)
        self.printer02 = utils.Sprite('assets/sprites/printer-02.png', 380,
                                      181)
        self.printer03 = utils.Sprite('assets/sprites/printer-03.png', 380,
                                      181)
        self.printer01.opacity = 0
        self.printer02.opacity = 0
        self.printer03.opacity = 0
        self.printer01.setAnchor(0.5, 1)
        self.printer02.setAnchor(0.5, 1)
        self.printer03.setAnchor(0.5, 1)

        self.materialL1 = utils.Sprite('assets/sprites/mtlL1.png', 301, 292)
        self.materialL2 = utils.Sprite('assets/sprites/mtlL2.png', 301, 365)
        self.materialL3 = utils.Sprite('assets/sprites/mtlL3.png', 301, 443)
        self.materialR1 = utils.Sprite('assets/sprites/mtlR1.png', 979, 292)
        self.materialR2 = utils.Sprite('assets/sprites/mtlR2.png', 979, 365)
        self.materialR3 = utils.Sprite('assets/sprites/mtlR3.png', 979, 443)
        self.materialL1.opacity = 0
        self.materialL2.opacity = 0
        self.materialL3.opacity = 0
        self.materialR1.opacity = 0
        self.materialR2.opacity = 0
        self.materialR3.opacity = 0

        self.opt_knobs = utils.Sprite('assets/sprites/opt_knobs.png', 640, 325)
        self.opt_buttons = utils.Sprite('assets/sprites/opt_buttons.png', 640,
                                        447)
        self.opt_knobs.opacity = 0
        self.opt_buttons.opacity = 0

        self.sfx_tut_st = utils.get_sound('assets/audio/SFX/SFX_Tut_St.ogg')
        self.sfx_tut_print = utils.get_sound(
            'assets/audio/SFX/SFX_Tut_Print.ogg')
        self.sfx_tut_mat = utils.get_sound('assets/audio/SFX/SFX_Tut_Mat.ogg')
        self.sfx_tut_opt = utils.get_sound('assets/audio/SFX/SFX_Tut_Opt.ogg')
        self.sfx_tut_end = utils.get_sound('assets/audio/SFX/SFX_Tut_End.ogg')

        titlefont = pygame.font.Font("assets/fonts/VCR_OSD_MONO_1.001.ttf", 44)
        self.title = utils.Text("", titlefont)
        self.title.SetPosition(1280 / 2, 546)

        subtitlefont = pygame.font.Font("assets/fonts/VCR_OSD_MONO_1.001.ttf",
                                        32)
        self.subtitle = utils.Text("", subtitlefont)
        self.subtitle.SetPosition(1280 / 2, 610)

        # second 0
        second = 0
        self.AddTween("easeOutCubic", 2, self.mimo_blueprint, "opacity", 0,
                      255, second)
        # second 2
        second = 2
        self.AddTrigger(second, self.sfx_tut_st, 'play')
        self.AddTrigger(second, self.title, 'SetText',
                        '-- M.I.M.O. VERIFICATION PROCESS --')

        # second 4
        second = 4
        self.AddTween("easeOutCubic", 0.5, self.mimo_blueprint, "opacity", 255,
                      64, second)
        self.AddTween("easeOutCubic", 1, self.printer01, "opacity", 0, 255,
                      second)

        # second 5
        second = 5.5
        self.AddTrigger(second, self.sfx_tut_print, 'play')
        self.AddTrigger(second, self.printer01, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer02, 'SetOpacity', 255)
        self.AddTrigger(second, self.title, 'SetText', 'VERIFYING PRINTER')
        self.AddTrigger(
            second, self.subtitle, 'SetText',
            'READ EACH INCOMING EVENT AND USE THE MATERIAL\nATTACHED TO IT TO TRANSFORM IT INTO THE NEWS'
        )
        second = 6
        self.AddTrigger(second, self.printer02, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer03, 'SetOpacity', 255)
        second = 6.5
        self.AddTrigger(second, self.printer03, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer01, 'SetOpacity', 255)
        second = 7
        self.AddTrigger(second, self.printer01, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer02, 'SetOpacity', 255)
        second = 7.5
        self.AddTrigger(second, self.printer02, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer03, 'SetOpacity', 255)
        second = 8
        self.AddTrigger(second, self.printer03, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer01, 'SetOpacity', 255)
        second = 8.5
        self.AddTrigger(second, self.printer01, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer02, 'SetOpacity', 255)
        second = 9
        self.AddTrigger(second, self.printer02, 'SetOpacity', 0)
        self.AddTrigger(second, self.printer03, 'SetOpacity', 255)
        self.AddTrigger(second, mimo, 'termal_print',
                        "System check\nveryfing printer")

        second = 10.5
        self.AddTrigger(second, self.printer03, 'SetOpacity', 0)
        self.AddTrigger(second, self.sfx_tut_mat, 'play')
        self.AddTrigger(second, self.title, 'SetText',
                        'VERIFYING MATERIAL PANEL')
        self.AddTrigger(
            second, self.subtitle, 'SetText',
            'PRESS EACH BUTTON TO SELECT THE MATERIAL\nYOU WANT TO USE TO EVOKE AN EMOTION IN THE CURRENT NEWS'
        )

        self.AddTween('easeOutCubic', 0.5, self.materialL1, "opacity", 0, 255,
                      second)
        self.AddTrigger(10.7, mimo, 'set_material_leds_color', [0, 255, 0, 0])
        second = 11.5
        self.AddTween('easeOutCubic', 0.5, self.materialL2, "opacity", 0, 255,
                      second)
        self.AddTrigger(11.7, mimo, 'set_material_leds_color',
                        [1, 255, 255, 255])
        second = 12.5
        self.AddTween('easeOutCubic', 0.5, self.materialL3, "opacity", 0, 255,
                      second)
        self.AddTrigger(12.7, mimo, 'set_material_leds_color', [2, 0, 255, 0])
        second = 13.5
        self.AddTween('easeOutCubic', 0.5, self.materialR1, "opacity", 0, 255,
                      second)
        self.AddTrigger(13.7, mimo, 'set_material_leds_color',
                        [7, 255, 255, 0])
        second = 14.5
        self.AddTween('easeOutCubic', 0.5, self.materialR2, "opacity", 0, 255,
                      second)
        self.AddTrigger(14.7, mimo, 'set_material_leds_color',
                        [6, 0, 255, 255])
        second = 15.5
        self.AddTween('easeOutCubic', 0.5, self.materialR3, "opacity", 0, 255,
                      second)
        self.AddTrigger(15.7, mimo, 'set_material_leds_color',
                        [5, 255, 0, 255])

        second = 16.5
        self.AddTween('easeOutCubic', 0.5, self.materialL1, "opacity", 255, 0,
                      second)
        self.AddTween('easeOutCubic', 0.5, self.materialL2, "opacity", 255, 0,
                      second)
        self.AddTween('easeOutCubic', 0.5, self.materialL3, "opacity", 255, 0,
                      second)
        self.AddTween('easeOutCubic', 0.5, self.materialR1, "opacity", 255, 0,
                      second)
        self.AddTween('easeOutCubic', 0.5, self.materialR2, "opacity", 255, 0,
                      second)
        self.AddTween('easeOutCubic', 0.5, self.materialR3, "opacity", 255, 0,
                      second)
        self.AddTrigger(17, mimo, 'set_material_leds_color', [
            0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0,
            0, 0
        ])

        second = 18
        self.AddTrigger(second, self.sfx_tut_opt, 'play')
        self.AddTrigger(second, self.title, 'SetText',
                        'VERIFYING OPTIMIZATION PANEL')
        self.AddTrigger(
            second, self.subtitle, 'SetText',
            'USE THE KNOBS AND BUTTONS TO IMPROVE THE IMPACT\nOF THE EVOKED EMOTION'
        )
        self.AddTween('easeOutCubic', 4, self.opt_knobs, "opacity", 0, 255,
                      second)
        self.AddTween('easeOutCubic', 5, self.opt_buttons, "opacity", 0, 255,
                      second)

        second = 24
        self.AddTrigger(second, self.sfx_tut_end, 'play')
        self.AddTrigger(second, self.title, 'SetText',
                        '-- M.I.M.O. VERIFICATION COMPLETE --')
        self.AddTrigger(
            second, self.subtitle, 'SetText',
            'ALL SYSTEMS WORKING.\nWELCOME!\nYOU CAN START MANUFACTURING THE NEWS.'
        )