From 35e94a9bc38b9fbf897f25e75c8b029a71badb53 Mon Sep 17 00:00:00 2001 From: Brian Madden Date: Fri, 24 Mar 2023 12:52:17 -0500 Subject: [PATCH 01/29] updated README & links --- AUTHORS | 2 +- CONTRIBUTING.md | 2 +- README.md | 38 +++++++++------------ RELEASE.md | 2 +- docs/code/machine_code.rst | 4 +-- docs/dev/event_annotations.rst | 2 +- docs/dev/mc.widget_player.rst | 24 ++++++------- mpf/modes/credits/config/credits.yaml | 2 +- mpf/modes/high_score/config/high_score.yaml | 2 +- mpf/modes/tilt/config/tilt.yaml | 2 +- 10 files changed, 37 insertions(+), 43 deletions(-) diff --git a/AUTHORS b/AUTHORS index 328f7a91b..cbf9e073e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -39,4 +39,4 @@ MPF is inspired by pyprocgame and skeletongame which were written by: * Michael Ocean * Josh Kugler -Want to contribute to MPF? Get started here: http://docs.missionpinball.org/en/latest/about/contributing_to_mpf.html +Want to contribute to MPF? Get started here: http://docs.missionpinball.org/about/contributing_to_mpf.html diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fd9bbe5ff..db761b4eb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1 @@ -See: http://docs.missionpinball.org/en/dev/about/contributing_to_mpf.html +See: http://docs.missionpinball.org/about/contributing_to_mpf.html diff --git a/README.md b/README.md index 212b1f7ae..2fd34e55d 100644 --- a/README.md +++ b/README.md @@ -8,30 +8,13 @@ Mission Pinball Framework (MPF) What is Mission Pinball Framework? ---------------------------------- -Mission Pinball Framework (MPF) is an open source, cross-platform software for powering real pinball -machines in restaurants, bars, arcades, and elsewhere. MPF is a community-developed project released under the MIT license. It's supported by volunteers in their spare time. Individual pinball hardware makers are responsible for their own platform interface maintenance and contributions. +Mission Pinball Framework (MPF) is open source, cross-platform software for powering real pinball +machines. MPF is a community-developed project released under the MIT license. It's supported by volunteers in their spare time. [![Coverage Status](https://coveralls.io/repos/missionpinball/mpf/badge.svg?branch=dev&service=github)](https://coveralls.io/github/missionpinball/mpf?branch=dev) [![Test Status](https://github.com/missionpinball/mpf/actions/workflows/run_tests.yml/badge.svg)](https://github.com/missionpinball/mpf/actions/workflows/run_tests.yml) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1687/badge)](https://bestpractices.coreinfrastructure.org/projects/1687) -Technology and Compatibility ----------------------------- - -You can use MPF as the software to run a custom-built machine, or (with appropriate interface hardware) existing Williams, Bally, Stern, or Data East pinball machines. MPF interfaces with machines via modern pinball controller hardware, including: - -* FAST Pinball controllers -* CobraPin -* Stern SPIKE / SPIKE 2 -* Multimorphic P-ROC or P3-ROC -* Open Pinball Project (OPP) open source hardware -* LISY Platform -* Penny K Arcade PKONE -* Arduino Pinball Controller -* Plus many more systems & devices! - -MPF is written in Python. It can be run on Windows, Mac, Linux, and Raspberry Pi host machines using the same code and configurations. - Visit the MPF project homepage at https://missionpinball.org. Additional related projects exist as part of the MPF ecosystem, including the "MPF Monitor" which is a graphical application that lets you simulate pinball hardware, and "MPF-MC" which is a media controller which provides graphics and sounds for pinball machines. Documentation @@ -43,13 +26,24 @@ Documentation Support ------- -MPF is open source and has no official support. Some MPF users follow the MPF-users Google group: https://groups.google.com/forum/#!forum/mpf-users. Individual hardware providers may provide additional support for users of their hardware. +MPF is an open source community project which has no official support. Some MPF users participate in the MPF-Users Google group: https://groups.google.com/forum/#!forum/mpf-users. + +Individual pinball hardware companies may provide additional support for users of their hardware, often via their own Slack, Discord, or other chat groups. If you get stuck, you can ask for help in the MPF-users group, or you reach out to your hardware provider. + +Maintenance, Pull Requests, & Bug Fixes +--------------------------------------- + +As a community project, we welcome pull requests and bug fixes. However, we do not have the resources to provide support for MPF. If you are interested in becoming a maintainer, please contact us at brian@missionpinball.org. + +Bugs or other issues related to MPF itself can be posted to the [MPF Discussions page on GitHub](https://github.com/orgs/missionpinball/discussions). Contributing ------------ -MPF is a passion project created and maintained by volunteers. If you're a Python coder, documentation writer, or pinball maker, feel free to make a change and submit a pull request. For more information about contributing see the [Contributing Code](http://docs.missionpinball.org/en/latest/about/contributing_to_mpf.html) -and [Contributing Documentation](http://docs.missionpinball.org/en/latest/about/contributing_to_mpf_docs.html) pages. +Individual pinball hardware makers are responsible for their own platform interface maintenance and contributions. + +If you're a Python coder, documentation writer, or pinball maker, feel free to make a change and submit a pull request. For more information about contributing see the [Contributing Code](http://docs.missionpinball.org/about/contributing_to_mpf.html) +and [Contributing Documentation](http://docs.missionpinball.org/about/contributing_to_mpf_docs.html) pages. License ------- diff --git a/RELEASE.md b/RELEASE.md index a0d54c0ce..85de2da63 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1 +1 @@ -See: http://docs.missionpinball.org/en/latest/versions/release_notes.html +See: http://docs.missionpinball.org/versions/release_notes.html diff --git a/docs/code/machine_code.rst b/docs/code/machine_code.rst index f3cc653ed..58a46fe75 100644 --- a/docs/code/machine_code.rst +++ b/docs/code/machine_code.rst @@ -18,7 +18,7 @@ match up to any of MPF's built in devices. The elevator and claw unloader in *Demolition Man* is a good example, and what we'll use here. (You can read about how to download and run *Demo Man* in the -`example games section `_ +`example games section `_ section of the MPF User Documentation.) Here's how to create a custom code class: @@ -35,7 +35,7 @@ In the *Demo Man* example, it looks like this: .. image:: /images/scriptlet.png Add an empty ``__init__.py`` file into your folder to make it a package. -It become the package ``code`` and all your classes will be referenced as +It become the package ``code`` and all your classes will be referenced as ``code.file_name.ClassName``. 2. Open and edit your custom code class file diff --git a/docs/dev/event_annotations.rst b/docs/dev/event_annotations.rst index d7b700645..d15f9b7dd 100644 --- a/docs/dev/event_annotations.rst +++ b/docs/dev/event_annotations.rst @@ -25,5 +25,5 @@ document the event in code and in the docs, we use a custom docblock annotation: reason: The reason for this awesomeness is stated here. ''' -The event will be automatically added to the `event reference `_ +The event will be automatically added to the `event reference `_ on the next update of the documentation. diff --git a/docs/dev/mc.widget_player.rst b/docs/dev/mc.widget_player.rst index 6f6372764..179e28702 100644 --- a/docs/dev/mc.widget_player.rst +++ b/docs/dev/mc.widget_player.rst @@ -7,7 +7,7 @@ The widget player is available via: ``self.mc.widget_player`` Methods & Attributes --------------------- -``play(settings, context, calling_context)`` +``play(settings, context, calling_context)`` ``Add``, ``update`` or ``remove`` widget based on config @@ -38,11 +38,11 @@ So here is our base ``widget`` from the config file that we will be using. some_image_widget: - type: image image: this_image_is_wrong - y: 20 + y: 20 x: 35 - + Refer to the widget section in the docs for more info on how to set it up: -http://docs.missionpinball.org/en/latest/displays/widgets/index.html +http://docs.missionpinball.org/displays/widgets/index.html Writing the settings to show/play this widget in code ^^^^^^^^^^^^^^^ @@ -67,9 +67,9 @@ When it comes to the settings we start with the following: } } -You need to add ``action`` and ``key`` to make the ``widget`` work. +You need to add ``action`` and ``key`` to make the ``widget`` work. Refer to the ``widget_player`` section for more info on these and what other functions can be added: -http://docs.missionpinball.org/en/latest/config/widget_player.html +http://docs.missionpinball.org/config/widget_player.html Now you can show the pre-defined widget from the config file. @@ -86,13 +86,13 @@ First we will define a ``variable`` which will hold our image name. (for example character_name = some_function_for_retrieving_a_string() image_name = “character_{}_profile_image”.format(character_name) -To keep things organized in the image folder we made a prefix for the image. +To keep things organized in the image folder we made a prefix for the image. Make sure you add the images with the right syntax in the image folder. The following code shows how to override an image and x-coordinate .. code-block:: python - + settings = { "some_image_widget": { "action": "add", @@ -104,10 +104,10 @@ The following code shows how to override an image and x-coordinate } } -You can ``change``/``add`` everything this way from the related type of ``widget``, or the common settings for all widgets. +You can ``change``/``add`` everything this way from the related type of ``widget``, or the common settings for all widgets. Refer to the common settings for a overview of all settings. -http://docs.missionpinball.org/en/latest/displays/widgets/common_settings.html +http://docs.missionpinball.org/displays/widgets/common_settings.html Just make sure you format this way @@ -127,7 +127,7 @@ Creating animation from predefined animations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The easiest thing is to change/add pre-defined animations. See capther 9 of widget animation for more info on this: -http://docs.missionpinball.org/en/latest/displays/widgets/animation.html +http://docs.missionpinball.org/displays/widgets/animation.html .. code-block:: python @@ -149,7 +149,7 @@ http://docs.missionpinball.org/en/latest/displays/widgets/animation.html Make sure that after defining the event you put the animations in a list ``[]``. And put every animation between brackets ``{}``. ``“named_animation”`` is called like that, you don’t need to change it in something else. -Creating/overriding animation from within the widget +Creating/overriding animation from within the widget ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When creating the animations within the widget, you want to make sure that you also want to create a list in here. diff --git a/mpf/modes/credits/config/credits.yaml b/mpf/modes/credits/config/credits.yaml index 78c205aec..0584fd537 100644 --- a/mpf/modes/credits/config/credits.yaml +++ b/mpf/modes/credits/config/credits.yaml @@ -7,7 +7,7 @@ mode: stop_on_ball_end: False # Instructions on how to use this mode: -# http://docs.missionpinball.org/en/latest/game_logic/credits +# http://docs.missionpinball.org/game_logic/credits # You can copy the sections below to your own machine config as a starting point diff --git a/mpf/modes/high_score/config/high_score.yaml b/mpf/modes/high_score/config/high_score.yaml index 78cb50e10..e03bd5825 100644 --- a/mpf/modes/high_score/config/high_score.yaml +++ b/mpf/modes/high_score/config/high_score.yaml @@ -7,7 +7,7 @@ mode: use_wait_queue: true # Instructions on how to use this mode: -# http://docs.missionpinball.org/en/latest/game_logic/high_scores/index.html +# http://docs.missionpinball.org/game_logic/high_scores/index.html high_score: enter_initials_timeout: 60 diff --git a/mpf/modes/tilt/config/tilt.yaml b/mpf/modes/tilt/config/tilt.yaml index bd2afa4d6..9d7554fd9 100644 --- a/mpf/modes/tilt/config/tilt.yaml +++ b/mpf/modes/tilt/config/tilt.yaml @@ -7,7 +7,7 @@ mode: stop_on_ball_end: False # Instructions on how to use this mode: -# http://docs.missionpinball.org/en/latest/game_logic/tilt.html +# http://docs.missionpinball.org/game_logic/tilt.html tilt: tilt_warning_switch_tag: tilt_warning From a7df9502130a7321d7f8e81210d54aada58f8b4e Mon Sep 17 00:00:00 2001 From: cobra18t Date: Tue, 11 Apr 2023 11:23:23 -0700 Subject: [PATCH 02/29] Add basic speedometer section --- mpf/config_spec.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mpf/config_spec.yaml b/mpf/config_spec.yaml index 4fe213b41..a83a0447b 100644 --- a/mpf/config_spec.yaml +++ b/mpf/config_spec.yaml @@ -1760,6 +1760,9 @@ sound_ducking: sound_marker: time: single|secs| events: list|event_posted| +speedometers: + start_switch: single|machine(switches)|None + stop_switch: single|machine(switches)|None spi_bit_bang: __valid_in__: machine __type__: config From 8894effb2a7fcf9103b91af0458819f39346d596 Mon Sep 17 00:00:00 2001 From: cobra18t Date: Tue, 11 Apr 2023 11:51:28 -0700 Subject: [PATCH 03/29] Add speedometer hit event with delta time payload --- mpf/devices/speedometer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mpf/devices/speedometer.py b/mpf/devices/speedometer.py index f827e779c..b61599208 100644 --- a/mpf/devices/speedometer.py +++ b/mpf/devices/speedometer.py @@ -37,4 +37,5 @@ def _handle_stop_switch(self, **kwargs): delta = self.config['stop_switch'].last_change - self.time_start self.time_start = None print(delta) + self.machine.events.post("{}_hit".format(self.name), delta = delta) # TODO: post event From 07a892c0a490a10ed67a39194ff99f59ff6ccfde Mon Sep 17 00:00:00 2001 From: cobra18t Date: Mon, 17 Apr 2023 22:13:28 -0700 Subject: [PATCH 04/29] correct speedometers section --- mpf/config_spec.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mpf/config_spec.yaml b/mpf/config_spec.yaml index a83a0447b..b1f1bee97 100644 --- a/mpf/config_spec.yaml +++ b/mpf/config_spec.yaml @@ -1761,6 +1761,8 @@ sound_marker: time: single|secs| events: list|event_posted| speedometers: + __valid_in__: machine, mode + __type__: device start_switch: single|machine(switches)|None stop_switch: single|machine(switches)|None spi_bit_bang: From 8faad1d1fc4569053c64f2da44e4df21fd8fb354 Mon Sep 17 00:00:00 2001 From: cobra18t Date: Mon, 17 Apr 2023 22:14:15 -0700 Subject: [PATCH 05/29] add speedometers --- mpf/mpfconfig.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/mpf/mpfconfig.yaml b/mpf/mpfconfig.yaml index 3fa12e43b..2945d7fb7 100644 --- a/mpf/mpfconfig.yaml +++ b/mpf/mpfconfig.yaml @@ -85,6 +85,7 @@ mpf: timers: mpf.devices.timer.Timer segment_displays: mpf.devices.segment_display.segment_display.SegmentDisplay sequence_shots: mpf.devices.sequence_shot.SequenceShot + speedometers: mpf.devices.speedometer.Speedometer hardware_sound_systems: mpf.devices.hardware_sound_system.HardwareSoundSystem steppers: mpf.devices.stepper.Stepper state_machines: mpf.devices.state_machine.StateMachine From 7c1681cc70c98a38e627534f22d63fe899b284d1 Mon Sep 17 00:00:00 2001 From: Anthony van Winkle Date: Wed, 17 May 2023 13:01:26 -0700 Subject: [PATCH 06/29] Allow // for floor division in dynamic values --- mpf/core/placeholder_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpf/core/placeholder_manager.py b/mpf/core/placeholder_manager.py index 8327247b5..777c73764 100644 --- a/mpf/core/placeholder_manager.py +++ b/mpf/core/placeholder_manager.py @@ -20,7 +20,7 @@ # supported operators -OPERATORS = {ast.Add: op.add, ast.Sub: op.sub, ast.Mult: op.mul, +OPERATORS = {ast.Add: op.add, ast.Sub: op.sub, ast.Mult: op.mul, ast.FloorDiv: op.floordiv, ast.Div: op.truediv, ast.Pow: op.pow, ast.BitXor: op.xor, ast.USub: op.neg, ast.Not: op.not_, ast.Mod: op.mod} From dac82eb152a3df442bc01196271c297469abf53a Mon Sep 17 00:00:00 2001 From: Anthony van Winkle Date: Wed, 17 May 2023 13:08:09 -0700 Subject: [PATCH 07/29] Add tests for floordiv in dynamic value --- .../variable_player/modes/mode3/config/mode3.yaml | 2 ++ mpf/tests/test_VariablePlayer.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/mpf/tests/machine_files/variable_player/modes/mode3/config/mode3.yaml b/mpf/tests/machine_files/variable_player/modes/mode3/config/mode3.yaml index 9996c32f8..d41a26f2d 100644 --- a/mpf/tests/machine_files/variable_player/modes/mode3/config/mode3.yaml +++ b/mpf/tests/machine_files/variable_player/modes/mode3/config/mode3.yaml @@ -27,6 +27,8 @@ variable_player: multiplier: float: 1.5 action: set + score_floordiv: + score: 123456 // 100 * 100 set_player7: score: int: 10 diff --git a/mpf/tests/test_VariablePlayer.py b/mpf/tests/test_VariablePlayer.py index 7baef2a31..d5c011ef5 100644 --- a/mpf/tests/test_VariablePlayer.py +++ b/mpf/tests/test_VariablePlayer.py @@ -144,6 +144,9 @@ def test_variable_player(self): self.post_event("score_float3") self.assertPlayerVarEqual(2394, "score") + self.post_event("score_floordiv") + self.assertPlayerVarEqual(125794, "score") + # should not crash self.post_event("set_player7") self.post_event("add_player7") From 712b61769c2d3726e6f8c5377ad20a9eef69d25c Mon Sep 17 00:00:00 2001 From: Avery Tummons Date: Fri, 19 May 2023 14:10:03 -0500 Subject: [PATCH 08/29] Add Player Vars to High Score Mode This updates the high_score.py file to pass through both the player_num and the category of the award. This is pushed through a new unique event (to prevent breaking existing games). The high_score.yaml file is updated as well to show how to use these new features to create a new specific slide for the awards where player and machine variables should be shown. --- mpf/modes/high_score/code/high_score.py | 12 ++++- mpf/modes/high_score/config/high_score.yaml | 53 ++++++++++++++++++++- 2 files changed, 62 insertions(+), 3 deletions(-) diff --git a/mpf/modes/high_score/code/high_score.py b/mpf/modes/high_score/code/high_score.py index 6ac3d5619..953c4a076 100644 --- a/mpf/modes/high_score/code/high_score.py +++ b/mpf/modes/high_score/code/high_score.py @@ -184,7 +184,8 @@ async def _run(self) -> None: # add high score new_list[i] = (player.initials, value) # show award slide - await self._show_award_slide(player.initials, award_names[i], value) + player_num = player.number + await self._show_award_slide(player_num, player.initials, category_name, award_names[i], value) # next entry i += 1 @@ -214,7 +215,7 @@ async def _ask_player_for_initials(self, player: Player, award_label: str, value return event_result["text"] if "text" in event_result else '' - async def _show_award_slide(self, player_name: str, award: str, value: int) -> None: + async def _show_award_slide(self, player_num, player_name: str, category_name: str, award: str, value: int) -> None: if not self.high_score_config['award_slide_display_time']: return @@ -228,6 +229,13 @@ async def _show_award_slide(self, player_name: str, award: str, value: int) -> N player_name=player_name, award=award, value=value) + self.machine.events.post( + '{}_award_display'.format(category_name), + player_num=player_num, + player_name=player_name, + category_name=category_name, + award=award, + value=value) await asyncio.sleep(self.high_score_config['award_slide_display_time'] / 1000) def _write_scores_to_disk(self) -> None: diff --git a/mpf/modes/high_score/config/high_score.yaml b/mpf/modes/high_score/config/high_score.yaml index e03bd5825..fef0b07a7 100644 --- a/mpf/modes/high_score/config/high_score.yaml +++ b/mpf/modes/high_score/config/high_score.yaml @@ -28,12 +28,30 @@ high_score: - MPF: 23 slide_player: - high_score_enter_initials: high_score_enter_initials + high_score_enter_initials: + high_score_enter_initials: + action: play + high_score_award_display: + action: remove + #Make sure to remove any slides you add under this high_score_enter_initials slide, or it will continue to + #show the award slide instead of initials for another player that also earned a high score. + score_award_display: + action: remove high_score_award_display: high_score_award_display: action: play high_score_enter_initials: action: remove + #This is used to show the slide for a specific award and show additional parameters. This can include any + #static lables as well as dynamic player and machine variables. + #You will need to generate this block again and swap the name for any subsequent categories that you want + #to show unique additional values. + score_award_display: + score_award_display: + action: play + priority: 1 + high_score_enter_initials: + action: remove slides: high_score_enter_initials: @@ -85,3 +103,36 @@ slides: number_grouping: true style: medium y: center - 33% + + #This is the slide for a specific category (in this case "score"), where you can include any values you want. + #This can include both player and machine vars. Player vars must have a number associated, otherwise it will + #pull from the last user who had a turn, not the user for which the player var applies. + #Player Var Syntax: (player(player_num)|variable) where you swap the variable, but do not change before the | + #Machine Var Syntax: (machine|variable) where you swap the variable, but do not change before the | + score_award_display: + - type: text + text: (player_name) + color: ffffff + style: big + y: center + 33% + - type: text + text: (award) + color: ffffff + style: medium + y: center + 15% + - type: text + text: (value) + color: ffffff + number_grouping: true + style: medium + y: center + - type: text + text: (player(player_num)|ball) + color: ffffff + style: medium + y: center - 15% + - type: text + text: (machine|credits_string) + color: ffffff + style: medium + y: center - 33% From b28de8fc151bd150ce2743c5233fa3d81ebafc73 Mon Sep 17 00:00:00 2001 From: Owner Date: Mon, 29 May 2023 07:49:56 +0200 Subject: [PATCH 09/29] added documentation to have a fully working (simple) code example to use events in code --- mpf/core/events.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/mpf/core/events.py b/mpf/core/events.py index 41d463bf6..d99378a12 100644 --- a/mpf/core/events.py +++ b/mpf/core/events.py @@ -160,6 +160,47 @@ def add_handler(self, event: str, handler: Any, priority: int = 1, blocking_faci Then later to remove all the handlers that a module added, you could: for handler in handler_list: ``events.remove_handler(my_handler)`` + + + A fully working example to get some initial working code might look like explained below. In your modes config file have the section + + .. code:: + + mode: + start_events: ball_started + priority: 100 + code: base.My_Base #base is the name of my code file (base.py), My_Base is the name of the class to be used from that source file + + Here the mode being used is my base mode, of course it could be done for any mode. Some basic code to read and write some player variable might look like below. + + .. code:: + + from mpf.core.mode import Mode + from mpf.core.events import event_handler + + class My_Base(Mode): #base mode + + def my_event_handler(self, *args, **kwargs): + print("My event handler is starting") + + player = self.machine.game.player + if not player: + return # do something reasonable here but do not crash in the next line + + # read player variable + print(player["status_target_light_red_0"]) #the variable status_target_light_red_0 is defined in the player_vars section of the config.yaml file + + #with every fired event alternate variable value between 0 and 1 + + if(player["status_target_light_red_0"] == 0): + player["status_target_light_red_0"] = 1 #set the variable to a value + else: + player["status_target_light_red_0"] = 0 + + def mode_start(self, **kwargs): + print("My custom mode code is starting") + my_handler = self.machine.events.add_handler('toggle_light', self.my_event_handler) + """ if event is None: raise AssertionError("Cannot pass event None.") From 3cc761b2bf679ebfcc0cf21e8fc0429d9c53c032 Mon Sep 17 00:00:00 2001 From: Avery Tummons Date: Wed, 14 Jun 2023 14:39:55 -0500 Subject: [PATCH 10/29] Save High Score Variables in high_scores.yaml This extends the high score mode to allow the user to define vars that they want to be saved along with the initials and title of the high score that is achieved. The user can define any number of player or machine vars that should be saved along with the files. These are written into the high_scores.yaml file as a third tuple. The code parses the list and for those with two elements (no vars) or three elements (with vars) it will create the machine variables so that it can be used on attract mode, etc. Then it will save to the file and update the machine vars after the game ends. --- mpf/config_spec.yaml | 1 + mpf/modes/high_score/code/high_score.py | 52 ++++++++- .../high_score_vars/config/high_score.yaml | 10 ++ .../modes/high_score/config/high_score.yaml | 31 ++++++ mpf/tests/test_HighScoreModeWithVars.py | 100 ++++++++++++++++++ 5 files changed, 189 insertions(+), 5 deletions(-) create mode 100644 mpf/tests/machine_files/high_score_vars/config/high_score.yaml create mode 100644 mpf/tests/machine_files/high_score_vars/modes/high_score/config/high_score.yaml create mode 100644 mpf/tests/test_HighScoreModeWithVars.py diff --git a/mpf/config_spec.yaml b/mpf/config_spec.yaml index 4fe213b41..d13288fb0 100644 --- a/mpf/config_spec.yaml +++ b/mpf/config_spec.yaml @@ -725,6 +725,7 @@ high_score: enter_initials_timeout: single|secs|20s reverse_sort: list|str|None reset_high_scores_events: list|event_handler|high_scores_reset,factory_reset + vars: dict|str:list|None info_lights: __valid_in__: machine # todo add to validator __type__: config diff --git a/mpf/modes/high_score/code/high_score.py b/mpf/modes/high_score/code/high_score.py index 953c4a076..525398144 100644 --- a/mpf/modes/high_score/code/high_score.py +++ b/mpf/modes/high_score/code/high_score.py @@ -13,7 +13,7 @@ class HighScore(AsyncMode): initials. """ - __slots__ = ["data_manager", "high_scores", "high_score_config", "pending_award"] + __slots__ = ["data_manager", "high_scores", "high_score_config", "pending_award", "vars"] def __init__(self, *args, **kwargs): """Initialise high score mode.""" @@ -21,6 +21,7 @@ def __init__(self, *args, **kwargs): self.high_scores = None self.high_score_config = None self.pending_award = None + self.vars = None super().__init__(*args, **kwargs) def mode_init(self): @@ -54,6 +55,11 @@ def _load_defaults(self): self.high_scores = {k: [(next(iter(a.keys())), next(iter(a.values()))) for a in v] for (k, v) in self.config['high_score']['defaults'].items()} + def _load_vars(self): + """Load var values from the config file""" + self.vars = {k: [(next(iter(a.keys())), next(iter(a.values()))) for a in v] for (k, v) in + self.config['high_score']['vars'].items()} + def _reset(self, **kwargs): """Reset high scores.""" del kwargs @@ -69,7 +75,7 @@ def _validate_data(self, data): return False for entry in data[category]: - if not isinstance(entry, tuple) or len(entry) != 2: + if not isinstance(entry, tuple) or (len(entry) != 2 and len(entry) != 3): self.log.warning("Found invalid high score entry.") return False @@ -94,7 +100,7 @@ def _create_machine_vars(self): """ for category, entries in self.high_score_config['categories'].items(): try: - for position, (label, (name, value)) in ( + for position, (label, (name, value, *hs_vars)) in ( enumerate(zip(entries, self.high_scores[category]))): @@ -134,6 +140,24 @@ def _create_machine_vars(self): ''' + if len(hs_vars) > 0: + for k, v in hs_vars[0].items(): + if 'player' in k: + self.machine.variables.set_machine_var( + name=category + str(position + 1) + '_' + str(k), + value=v) + else: + self.machine.variables.set_machine_var( + name=category + str(position + 1) + '_' + str(k), + value=v) + + '''machine_var: (high_score_category)(position)_(variable) + + desc: Holds the player or machine variable(s) for the high + score for that category and position. + + ''' + except KeyError: self.high_scores[category] = list() @@ -181,8 +205,26 @@ async def _run(self) -> None: del new_list[i] # no entry when the player missed the timeout continue - # add high score - new_list[i] = (player.initials, value) + player_num_index = player.number - 1 + # get vars from config + self._load_vars() + # create dictionary of the variable name and its value, then load it for the category + var_dict = dict() + if category_name in self.vars: + j = 0 + while j < len(self.vars[category_name]) and bool(self.vars[category_name]): + if 'player' in self.vars[category_name][j][0]: + var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ + = self.machine.game.player_list[player_num_index][self.vars[category_name][j][1]] + else: + var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ + = self.machine.variables.get_machine_var(self.vars[category_name][j][1]) + j += 1 + # add high score with variables + new_list[i] = (player.initials, value, var_dict) + else: + # add high score without variables + new_list[i] = (player.initials, value) # show award slide player_num = player.number await self._show_award_slide(player_num, player.initials, category_name, award_names[i], value) diff --git a/mpf/tests/machine_files/high_score_vars/config/high_score.yaml b/mpf/tests/machine_files/high_score_vars/config/high_score.yaml new file mode 100644 index 000000000..9c5946042 --- /dev/null +++ b/mpf/tests/machine_files/high_score_vars/config/high_score.yaml @@ -0,0 +1,10 @@ +#config_version=5 + +modes: + - high_score + - tilt + +switches: + s_tilt: + tags: tilt_warning + number: diff --git a/mpf/tests/machine_files/high_score_vars/modes/high_score/config/high_score.yaml b/mpf/tests/machine_files/high_score_vars/modes/high_score/config/high_score.yaml new file mode 100644 index 000000000..4014f1869 --- /dev/null +++ b/mpf/tests/machine_files/high_score_vars/modes/high_score/config/high_score.yaml @@ -0,0 +1,31 @@ +#config_version=5 +high_score: + _overwrite: True + categories: !!omap + - score: + - GRAND CHAMPION + - HIGH SCORE 1 + - HIGH SCORE 2 + - HIGH SCORE 3 + - HIGH SCORE 4 + - loops: + - LOOP CHAMP + - hits: + - MOST HITS + defaults: + score: + - BRI: 4242 + - GHK: 2323 + - JK: 1337 + - QC: 42 + - MPF: 23 + loops: + - JK: 42 + hits: + - A: 1 + vars: + loops: + - player: number + hits: + - player: number + - machine: credits_string diff --git a/mpf/tests/test_HighScoreModeWithVars.py b/mpf/tests/test_HighScoreModeWithVars.py new file mode 100644 index 000000000..e1c6c87cc --- /dev/null +++ b/mpf/tests/test_HighScoreModeWithVars.py @@ -0,0 +1,100 @@ +"""Test high score mode.""" +from collections import OrderedDict + +from unittest.mock import MagicMock +from mpf.tests.MpfBcpTestCase import MpfBcpTestCase + + +class TestHighScoreMode(MpfBcpTestCase): + + def get_config_file(self): + return 'high_score.yaml' + + def get_machine_path(self): + return 'tests/machine_files/high_score_vars/' + + def start_game(self, num_players=1): + self._bcp_client.send = MagicMock() + + self.machine.playfield.add_ball = MagicMock() + self.machine.events.post('game_start') + self.advance_time_and_run() + self.machine.game.balls_in_play = 1 + self.assertIsNotNone(self.machine.game) + + while self.machine.game.num_players < num_players: + self.machine.game.request_player_add() + self.advance_time_and_run() + + def test_high_score_one_var(self): + self.advance_time_and_run() + self.mock_event("high_score_enter_initials") + self.mock_event("loops_award_display") + # tests loop award with additional variables + self.machine.modes["high_score"].high_scores = OrderedDict() + self.machine.modes["high_score"].high_scores['loops'] = [('BIL', 2)] + + self.start_game(1) + self.machine.game.player_list[0].loops = 50 + self.machine.game.end_game() + self.advance_time_and_run() + self.assertTrue(self.machine.modes["high_score"].active) + + # Award initials + self.assertEqual(1, self._events['high_score_enter_initials']) + self._bcp_client.send.reset_mock() + + self._bcp_client.receive_queue.put_nowait(('trigger', dict(name='text_input_high_score_complete', text='NEW'))) + self.advance_time_and_run(.5) + + self.assertEventCalledWith("loops_award_display", award='LOOP CHAMP', player_name='NEW', value=50, + player_num=1, category_name='loops') + self.advance_time_and_run(4) + + # High score done + self.assertFalse(self.machine.modes["high_score"].active) + + # verify the data is accurate + + new_score_data = {'score': [], 'loops': [('NEW', 50, {'player.number': 1})], 'hits': []} + + self.assertEqual(new_score_data, + self.machine.modes["high_score"].high_scores) + self.assertEqual(new_score_data, self.machine.modes["high_score"].data_manager.written_data) + + def test_high_score_multiple_vars(self): + self.advance_time_and_run() + self.mock_event("high_score_enter_initials") + self.mock_event("hits_award_display") + # tests loop award with additional variables + self.machine.modes["high_score"].high_scores = OrderedDict() + self.machine.modes["high_score"].high_scores['hits'] = [('AAA', 2)] + + self.start_game(1) + self.machine.game.player_list[0].hits = 50 + self.machine.game.end_game() + self.advance_time_and_run() + self.assertTrue(self.machine.modes["high_score"].active) + + # Award initials + self.assertEqual(1, self._events['high_score_enter_initials']) + self._bcp_client.send.reset_mock() + + self._bcp_client.receive_queue.put_nowait(('trigger', dict(name='text_input_high_score_complete', text='NEW'))) + self.advance_time_and_run(.5) + + self.assertEventCalledWith("hits_award_display", award='MOST HITS', player_name='NEW', value=50, + player_num=1, category_name='hits') + self.advance_time_and_run(4) + + # High score done + self.assertFalse(self.machine.modes["high_score"].active) + + # verify the data is accurate + + new_score_data = {'score': [], 'loops': [], 'hits': [('NEW', 50, {'player.number': 1, 'machine.credits_string': + 'FREE PLAY'})]} + + self.assertEqual(new_score_data, + self.machine.modes["high_score"].high_scores) + self.assertEqual(new_score_data, self.machine.modes["high_score"].data_manager.written_data) From e06802b43fda8db6cfdfa803d80dc37fc4d4a865 Mon Sep 17 00:00:00 2001 From: Avery Tummons Date: Wed, 14 Jun 2023 15:25:20 -0500 Subject: [PATCH 11/29] Fix Items From SonarCloud --- mpf/modes/high_score/code/high_score.py | 41 +++++++++++++------------ 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/mpf/modes/high_score/code/high_score.py b/mpf/modes/high_score/code/high_score.py index 525398144..9c7ac2602 100644 --- a/mpf/modes/high_score/code/high_score.py +++ b/mpf/modes/high_score/code/high_score.py @@ -142,14 +142,9 @@ def _create_machine_vars(self): if len(hs_vars) > 0: for k, v in hs_vars[0].items(): - if 'player' in k: - self.machine.variables.set_machine_var( - name=category + str(position + 1) + '_' + str(k), - value=v) - else: - self.machine.variables.set_machine_var( - name=category + str(position + 1) + '_' + str(k), - value=v) + self.machine.variables.set_machine_var( + name=category + str(position + 1) + '_' + str(k), + value=v) '''machine_var: (high_score_category)(position)_(variable) @@ -205,21 +200,10 @@ async def _run(self) -> None: del new_list[i] # no entry when the player missed the timeout continue - player_num_index = player.number - 1 # get vars from config self._load_vars() - # create dictionary of the variable name and its value, then load it for the category - var_dict = dict() if category_name in self.vars: - j = 0 - while j < len(self.vars[category_name]) and bool(self.vars[category_name]): - if 'player' in self.vars[category_name][j][0]: - var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ - = self.machine.game.player_list[player_num_index][self.vars[category_name][j][1]] - else: - var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ - = self.machine.variables.get_machine_var(self.vars[category_name][j][1]) - j += 1 + var_dict = self._assign_vars(category_name, player) # add high score with variables new_list[i] = (player.initials, value, var_dict) else: @@ -239,6 +223,23 @@ async def _run(self) -> None: self._write_scores_to_disk() self._create_machine_vars() + def _assign_vars(self, category_name, player): + """Define all vars that are for the given category, and assign their values.""" + # create dictionary of the variable name and its value, then load it for the category + player_num_index = player.number - 1 + var_dict = dict() + j = 0 + while j < len(self.vars[category_name]) and bool(self.vars[category_name]): + if 'player' in self.vars[category_name][j][0]: + var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ + = self.machine.game.player_list[player_num_index][self.vars[category_name][j][1]] + else: + var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ + = self.machine.variables.get_machine_var(self.vars[category_name][j][1]) + j += 1 + # return the dictionary of items for this specific player and category entry + return var_dict + # pylint: disable-msg=too-many-arguments async def _ask_player_for_initials(self, player: Player, award_label: str, value: int) -> str: """Show text widget to ask player for initials.""" From d279bda74702781bd5831731d681f3e5662624b2 Mon Sep 17 00:00:00 2001 From: Eric Selk Date: Wed, 21 Jun 2023 17:55:28 -0700 Subject: [PATCH 12/29] add support for using * tag to return all devices --- AUTHORS | 1 + mpf/core/device_manager.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index cbf9e073e..fcfbbf97c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -31,6 +31,7 @@ their spare time, unpaid, for the love of pinball! * James Cardona * Dave Ensminger * Charles Duncan (nullbuilds) + * Eric Selk MPF is inspired by pyprocgame and skeletongame which were written by: diff --git a/mpf/core/device_manager.py b/mpf/core/device_manager.py index f00f09873..53259e8ec 100644 --- a/mpf/core/device_manager.py +++ b/mpf/core/device_manager.py @@ -306,11 +306,14 @@ def items_tagged(self, tag) -> List["Device"]: Args: ---- tag: A string of the tag name which specifies what devices are - returned. + returned. A value of "*" returns all devices. Returns a list of device objects. If no devices are found with that tag, it will return an empty list. """ + if tag == "*": + return self.values() + items_in_tag_cache = self._tag_cache.get(tag, None) if items_in_tag_cache is not None: return items_in_tag_cache From d5dae7367455790d14a3816993f6b6f8e565fa40 Mon Sep 17 00:00:00 2001 From: Eric Selk Date: Wed, 21 Jun 2023 17:56:29 -0700 Subject: [PATCH 13/29] update link for contributing info --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index db761b4eb..597421167 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1 @@ -See: http://docs.missionpinball.org/about/contributing_to_mpf.html +See: https://missionpinball.org/about/contributing_to_mpf/ From e5cf0eabe6a5d007c12b3816857bbecd549e2aff Mon Sep 17 00:00:00 2001 From: Eric Selk Date: Thu, 22 Jun 2023 16:44:02 -0700 Subject: [PATCH 14/29] add unit tests for new * tag --- mpf/tests/test_DeviceCollection.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mpf/tests/test_DeviceCollection.py b/mpf/tests/test_DeviceCollection.py index 313dfdd87..be77a946b 100644 --- a/mpf/tests/test_DeviceCollection.py +++ b/mpf/tests/test_DeviceCollection.py @@ -38,3 +38,8 @@ def test_tags(self): self.assertIn(led2, self.machine.lights.items_tagged('tag1')) self.assertNotIn(led3, self.machine.lights.items_tagged('tag1')) self.assertNotIn(led4, self.machine.lights.items_tagged('tag1')) + + self.assertIn(led1, self.machine.lights.items_tagged('*')) + self.assertIn(led2, self.machine.lights.items_tagged('*')) + self.assertIn(led3, self.machine.lights.items_tagged('*')) + self.assertIn(led4, self.machine.lights.items_tagged('*')) From 9cdb7ddfb3dd4a9ad27fadf5f1eb7c21034484ad Mon Sep 17 00:00:00 2001 From: Eric Selk Date: Sun, 2 Jul 2023 05:42:07 -0700 Subject: [PATCH 15/29] allow outline in text widgets --- mpf/config_spec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mpf/config_spec.yaml b/mpf/config_spec.yaml index d13288fb0..c23ef294a 100644 --- a/mpf/config_spec.yaml +++ b/mpf/config_spec.yaml @@ -2192,8 +2192,8 @@ widgets: rotation: single|int_or_token|0 scale: single|float_or_token|1.0 casing: single|str|None - # outline_color: single|kivycolor|ffffffff - # outline_width: single|int_or_token|0 + outline_color: single|kivycolor|ffffffff + outline_width: single|int_or_token|0 # text_size: single|int_or_token|None # sets width of bounding box, not font # shorten: single|bool_or_token|None # mipmap: single|bool_or_token|None From 920387285f0737dbb393211c06856720813a7cba Mon Sep 17 00:00:00 2001 From: Eric Selk Date: Sun, 2 Jul 2023 05:49:40 -0700 Subject: [PATCH 16/29] Revert "allow outline in text widgets" This reverts commit 9cdb7ddfb3dd4a9ad27fadf5f1eb7c21034484ad. --- mpf/config_spec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mpf/config_spec.yaml b/mpf/config_spec.yaml index c23ef294a..d13288fb0 100644 --- a/mpf/config_spec.yaml +++ b/mpf/config_spec.yaml @@ -2192,8 +2192,8 @@ widgets: rotation: single|int_or_token|0 scale: single|float_or_token|1.0 casing: single|str|None - outline_color: single|kivycolor|ffffffff - outline_width: single|int_or_token|0 + # outline_color: single|kivycolor|ffffffff + # outline_width: single|int_or_token|0 # text_size: single|int_or_token|None # sets width of bounding box, not font # shorten: single|bool_or_token|None # mipmap: single|bool_or_token|None From 465d3c2b7795c26e4fee253668ef1de9f352df03 Mon Sep 17 00:00:00 2001 From: Eric Selk Date: Sun, 2 Jul 2023 05:42:07 -0700 Subject: [PATCH 17/29] allow outline in text widgets --- mpf/config_spec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mpf/config_spec.yaml b/mpf/config_spec.yaml index 4fe213b41..f30e57032 100644 --- a/mpf/config_spec.yaml +++ b/mpf/config_spec.yaml @@ -2191,8 +2191,8 @@ widgets: rotation: single|int_or_token|0 scale: single|float_or_token|1.0 casing: single|str|None - # outline_color: single|kivycolor|ffffffff - # outline_width: single|int_or_token|0 + outline_color: single|kivycolor|ffffffff + outline_width: single|int_or_token|0 # text_size: single|int_or_token|None # sets width of bounding box, not font # shorten: single|bool_or_token|None # mipmap: single|bool_or_token|None From 94b16c3ab8fe9e5bb0a14a7c921113749d1ac1aa Mon Sep 17 00:00:00 2001 From: cobra18t Date: Mon, 3 Jul 2023 12:04:43 -0700 Subject: [PATCH 18/29] Update config_spec.yaml for dynamic spped in show_player --- mpf/config_spec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpf/config_spec.yaml b/mpf/config_spec.yaml index 58265e27d..5dba0768c 100644 --- a/mpf/config_spec.yaml +++ b/mpf/config_spec.yaml @@ -1543,7 +1543,7 @@ show_player: action: single|enum(play,stop,pause,resume,advance,step_back,update,queue)|play show: single|str|None priority: single|int_or_token|0 - speed: single|float_or_token|1 + speed: single|template_float_or_token|1 block_queue: single|bool|false start_step: single|template_int|1 start_running: single|template_bool|True From fb7891cce7da3a97fcb4a97cccfa8b667a638c31 Mon Sep 17 00:00:00 2001 From: cobra18t Date: Mon, 3 Jul 2023 12:06:04 -0700 Subject: [PATCH 19/29] Update config_validator.py adding template_float_or_token type --- mpf/core/config_validator.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mpf/core/config_validator.py b/mpf/core/config_validator.py index e933f1aa0..0879cdacc 100644 --- a/mpf/core/config_validator.py +++ b/mpf/core/config_validator.py @@ -56,6 +56,7 @@ def __init__(self, machine, config_spec): "lstr": self._validate_type_lstr, "float": self._validate_type_float, "float_or_token": self._validate_type_or_token(self._validate_type_float), + "template_float_or_token": self._validate_type_or_token(self._validate_type_template_float), "int": self._validate_type_int, "int_or_token": self._validate_type_or_token(self._validate_type_int), "num": self._validate_type_num, @@ -454,7 +455,7 @@ def _validate_type_template_str(self, item, validation_failure_info): return self.machine.placeholder_manager.build_quoted_string_template(item) - def _validate_type_template_float(self, item, validation_failure_info): + def _validate_type_template_float(self, item, validation_failure_info, param=None): if item is None: return None if not isinstance(item, (str, float, int)): From cc39edd79c674369f3943461dd197b5c489d3a61 Mon Sep 17 00:00:00 2001 From: cobra18t Date: Mon, 3 Jul 2023 12:07:59 -0700 Subject: [PATCH 20/29] Update sequence_shot.py to record elapsed time to completion --- mpf/devices/sequence_shot.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mpf/devices/sequence_shot.py b/mpf/devices/sequence_shot.py index ec8380092..f9c8093ad 100644 --- a/mpf/devices/sequence_shot.py +++ b/mpf/devices/sequence_shot.py @@ -21,7 +21,7 @@ class SequenceShot(SystemWideDevice, ModeDevice): collection = 'sequence_shots' class_label = 'sequence_shot' - __slots__ = ["delay", "active_sequences", "active_delays", "_sequence_events", "_delay_events"] + __slots__ = ["delay", "active_sequences", "active_delays", "_sequence_events", "_delay_events", "_start_time"] def __init__(self, machine, name): """Initialise sequence shot.""" @@ -33,6 +33,7 @@ def __init__(self, machine, name): self._sequence_events = [] # type: List[str] self._delay_events = {} # type: Dict[str, int] + self._start_time = None @property def can_exist_outside_of_game(self): @@ -131,6 +132,9 @@ def _start_new_sequence(self): self.active_delays) return + #record start time + self._start_time = self.machine.clock.get_time() + # create a new sequence seq_id = uuid.uuid4() next_event = self._sequence_events[1] @@ -169,8 +173,11 @@ def _advance_sequence(self, sequence: ActiveSequence): self.active_sequences.append(ActiveSequence(sequence.id, current_position_index, next_event)) def _completed(self): - """Post sequence complete event.""" - self.machine.events.post("{}_hit".format(self.name)) + #measure the elapsed time between start and completion of the sequence + elapsed = self.machine.clock.get_time() - self._start_time + + """Post sequence complete event including its elapsed time to complete.""" + self.machine.events.post("{}_hit".format(self.name),elapsed=elapsed) '''event: (name)_hit desc: The sequence_shot called (name) was just completed. ''' From a174df4f94a1f958e9bda36c65b1ee9879ccb4a6 Mon Sep 17 00:00:00 2001 From: cobra18t Date: Tue, 4 Jul 2023 10:16:26 -0700 Subject: [PATCH 21/29] Update show_player.py for template_float --- mpf/config_players/show_player.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mpf/config_players/show_player.py b/mpf/config_players/show_player.py index ed1693453..3137ffb6d 100644 --- a/mpf/config_players/show_player.py +++ b/mpf/config_players/show_player.py @@ -102,9 +102,10 @@ def _play(self, key, instance_dict, show, show_settings, queue, start_time, plac start_step = show_settings['start_step'].evaluate(placeholder_args) start_running = show_settings['start_running'].evaluate(placeholder_args) show_tokens = {k: v.evaluate(placeholder_args) for k, v in show_settings['show_tokens'].items()} + speed = show_settings['speed'].evaluate(placeholder_args) show_config = self.machine.show_controller.create_show_config( - show, show_settings['priority'], show_settings['speed'], show_settings['loops'], show_settings['sync_ms'], + show, show_settings['priority'], speed, show_settings['loops'], show_settings['sync_ms'], show_settings['manual_advance'], show_tokens, show_settings['events_when_played'], show_settings['events_when_stopped'], show_settings['events_when_looped'], show_settings['events_when_paused'], show_settings['events_when_resumed'], @@ -128,9 +129,10 @@ def _queue(self, key, instance_dict, show, show_settings, queue, start_time, pla start_step = show_settings['start_step'].evaluate(placeholder_args) show_tokens = {k: v.evaluate(placeholder_args) for k, v in show_settings['show_tokens'].items()} + speed = show_settings['speed'].evaluate(placeholder_args) show_config = self.machine.show_controller.create_show_config( - show, show_settings['priority'], show_settings['speed'], show_settings['loops'], show_settings['sync_ms'], + show, show_settings['priority'], speed, show_settings['loops'], show_settings['sync_ms'], show_settings['manual_advance'], show_tokens, show_settings['events_when_played'], show_settings['events_when_stopped'], show_settings['events_when_looped'], show_settings['events_when_paused'], show_settings['events_when_resumed'], From d1c3ff77d1be7f64463c567df6fd0182ad7bb5b6 Mon Sep 17 00:00:00 2001 From: cobra18t Date: Tue, 4 Jul 2023 10:33:27 -0700 Subject: [PATCH 22/29] Update sequence_shot.py to handle a single step sequence --- mpf/devices/sequence_shot.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mpf/devices/sequence_shot.py b/mpf/devices/sequence_shot.py index f9c8093ad..d7a554df1 100644 --- a/mpf/devices/sequence_shot.py +++ b/mpf/devices/sequence_shot.py @@ -174,7 +174,10 @@ def _advance_sequence(self, sequence: ActiveSequence): def _completed(self): #measure the elapsed time between start and completion of the sequence - elapsed = self.machine.clock.get_time() - self._start_time + if self._start_time is not None: + elapsed = self.machine.clock.get_time() - self._start_time + else: + elapsed = 0 """Post sequence complete event including its elapsed time to complete.""" self.machine.events.post("{}_hit".format(self.name),elapsed=elapsed) From b89d00d34dfa96a0c92ff6d042dfedbaa533a3ec Mon Sep 17 00:00:00 2001 From: atummons <60987561+atummons@users.noreply.github.com> Date: Sat, 15 Jul 2023 07:55:41 -0500 Subject: [PATCH 23/29] Fix Format of Values Saved to Data/High_score When saving vars to the high_score file, they were saved as variabletype . variablename, but needs to be variabletype _ variablename. Otherwise the attract mode can't render that variable on the screen as a placeholder, it just shows the name. OOPS! --- mpf/modes/high_score/code/high_score.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mpf/modes/high_score/code/high_score.py b/mpf/modes/high_score/code/high_score.py index 9c7ac2602..4d80ebe78 100644 --- a/mpf/modes/high_score/code/high_score.py +++ b/mpf/modes/high_score/code/high_score.py @@ -231,10 +231,10 @@ def _assign_vars(self, category_name, player): j = 0 while j < len(self.vars[category_name]) and bool(self.vars[category_name]): if 'player' in self.vars[category_name][j][0]: - var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ + var_dict[self.vars[category_name][j][0] + '_' + self.vars[category_name][j][1]] \ = self.machine.game.player_list[player_num_index][self.vars[category_name][j][1]] else: - var_dict[self.vars[category_name][j][0] + '.' + self.vars[category_name][j][1]] \ + var_dict[self.vars[category_name][j][0] + '_' + self.vars[category_name][j][1]] \ = self.machine.variables.get_machine_var(self.vars[category_name][j][1]) j += 1 # return the dictionary of items for this specific player and category entry From 561a456d7e93dee7f967ad721d1843ab125c5dab Mon Sep 17 00:00:00 2001 From: Avery Tummons Date: Tue, 22 Aug 2023 20:30:18 -0500 Subject: [PATCH 24/29] Adds pinproc files for Python 3.9 --- .../pinproc/windows/pinproc.cp39-win32.pyd | Bin 0 -> 54272 bytes .../pinproc/windows/pinproc.cp39-win_amd64.pyd | Bin 0 -> 68096 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mpf/platforms/pinproc/windows/pinproc.cp39-win32.pyd create mode 100644 mpf/platforms/pinproc/windows/pinproc.cp39-win_amd64.pyd diff --git a/mpf/platforms/pinproc/windows/pinproc.cp39-win32.pyd b/mpf/platforms/pinproc/windows/pinproc.cp39-win32.pyd new file mode 100644 index 0000000000000000000000000000000000000000..0552dee422da5895eb8368b25b038d43db19a019 GIT binary patch literal 54272 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 G4g3?vRP$i~ literal 0 HcmV?d00001 diff --git a/mpf/platforms/pinproc/windows/pinproc.cp39-win_amd64.pyd b/mpf/platforms/pinproc/windows/pinproc.cp39-win_amd64.pyd new file mode 100644 index 0000000000000000000000000000000000000000..ce747c97bcbdcc4ec3ebf56059c4a787c0186a60 GIT binary patch literal 68096 zcmd?Sdwf*YwZK2g%#c75&!CJ(1sP?~SP)Y~H5j`)_J@hkH^P<+xB=i@sz)a`u*oWfgF$Lh|!N9;rad0 zXHVRelX&*T*^94O8Ct$#+2t!P{a$F{rAwDCs}KGAWuX-fOG8&I4aLrz75d(?MVCz| zDjF8f6#ZP;@+r4oaKcjefASmV(nj9*oHBaZTJ=1B*^kxpxMeq~=cr}3@!WOx=w+=u zM-@8Hvw%v^2AQ73rNRH?C)VuBlk7v0X_f^jqJ)UxfXeRMd zkEcW!|22OT>MvU@O+Dd9`~>(fZO^oWkopUGJPRhQSafOqr5?{n=;onJ&out8=YQ5; z1aX?+fO!JPO9F@-$>XmQ9{7uRJZ%$}JAkT=)OQ;_57cqa3wr)Gx(iBv3HoJb|Y zp;;GRq$l4i)s4?|vp&2)H(s%}+qNAq+oq@L!=Z%HsTNf@6QQJ-$k>DG-8>$Dr=d*fwq zr{b^cX7&C=>ay-Cs-21;q~>=^4h2Y(7VsGHd8zmdMqX4Ko)^LV1>h|$Il z?UAFkN3^K-McsR0e$@Mn?maKxy731dPr``T+8tHN4{{n_?Ahk`c#?fNT8oW5sv0&D z6E(EBvCLO(d=aDU__*GfF?Q((G`^Y|Jk!m>aZ%&>nD)pK@v`08Bge$N+q`qS6W(+4 zb?-&_(xiJSE%|vsyXis#(c~Ao+S&vmbE=&%eSs=(TCeC{HMF`SttBTCPaC4iz5DC5 zWn<52C&QEZw7E_j-K;u7T~u3Icx2R^_C?)PZK-cqomT$MZuv>qX$K`R>4lH9PYgLi1mgGB3N7cty8%)4K<4J67@h%JR6;o*1`1;cbV2 zCQBiE0}>Q?(5va;nWpj<eAy>T6de9cH+|#c#t!6RNZfddhZgguW8P{c zVp@Izu@i~-1#DIlF`s}V5wi#(5i`sY`BmPwL`B!Cp;h3StRUWaKKbT;?V`6GQIJ;E z4akF%0#_aib2H3VRQycjVM?|e_UI3t2Fxq4hWYV5A^?ur>Z z;^Vd}0=oSP`S1m_4a0Qvf}C+(E!(sW>8N(@*49ddqbH|fZ?W zAH2nlOVAE4#Er9JMl}lJm6&lovez#U1yLg{@}NDE7x!)zIf!~Yb?Hp~IHBT$}k@3W#gquv)BbAJio!qNM)9?BicH_pL zX!{3gc`+nWJsP<&LR`Lw*dtiIo@@Y@DX>+0P(r(_hxx2~wu{LkV$J)iuXeH^7 zwQsi*eBooQwu9&EA8X^gfF(Z&v~8;CDAZ8cfTgdi2&u+5q zhAG2#wT>u`HXUHz;L&cr3d103w?&)!ocAd2y3wHGCoiDaSv7TBJ4$Z+V zm@{A)U}*SPyu(0Twnb0H`*cRjgn7LM&`0F{|p#`1sy}luZM|8&D_U9F8=#J=Skh9Z! z^P*26&z{)0J+X0nqkp8s*|C(2=vK^(a1#pQLl@kBOQ!2QiD%?|PGa^N^L}w1?8Ig~ySYTR$plMh>PeuV2hn z28<1b#YU%qxgfqQ5Z_mWIEi zq1QkeZ5VOv*gTJ?@%lWwE7{d&w`mVCc#Sx=*9Sx~d2;K&K{IT(88M@aJjF)(D{}$w z%Yvs({}MjG{*?amGY#|=H|@*dv@N-<&rWL(b+!7Aiy2}uy3I|da|hb{%%Sa_C++RX zsXsMtbWJr!w zN_}{_ZmbEfmdS`x#Pg%`=J!uYBD2uQ0j(sr+UOROv@K!0TBohtlh4$qj@OvCEnbnU z-P|O@9ALy@>5?vq-mXc*v}7GgS_zi$vUHuU-O#0{t&ju4TUt-|guGo{|uPhJ{72P}ZpOTAVB08>%31^`e z@P)PEUYHk{+rfC4^6IInw3>lbVxE!lv~0J1hfMhy7V7i$&PV_mk-4XgFp9q+n5i38 z0lj5g{n2`7RAw|DJGkKcfOSrFzzr#N2f0FXb$h*d2Gk5VBJpU$dx2a{}*?Ofw5cS7E2seF+JUG2k*R7%@hkZ$-qLfkxM#^+2O@TEL;lJ%Ax;c z8T)EPO3S5YA(ZyW_Q$CixcLSG1N+(FuP z2Jlq$EQOxXWAVHF^r#gYNb_ksR5?;`G`j7eNim==IMDs(GWbsgu|&95M*E1d+NV8I zZUW*uif?hM2LFraz@x+l4`9E&7{u_M*7tG=m#d0`!=o zN}_1DLOb|dMa7u`<(ueMt@XD`(f(o=*lF@mc~w|uwO43moDZ7AC8utW?Vz~qbjN;K z5)KR)G0_W=nNY&Gil%<3_*rF~Acl|2__DXaWnF4Io{MSN z)I+L_3z5t7@)O!4ZC177(z$_{@vJf2XxAQz`Vjf4GNEwoecgzXRfg?Cnm9cl6Rt6> zX&ZJmex_;DUc`1o$CGkyz%3zG(Y0cm_Q?4@sm2bzwN7ZWQ%^0UUZ`IIlDe@(WK@}M z@V-7A5sj)ttWfmgepRZdqU3{Qk&ks&zkKxfmuDc~SN4~M)JtQ|*Ns`UFGf$vja9U* z{03rCS~0`7@CF5RfaHW%|EM>mUd;FleoEBMmAM7D~~lovC&Q?VRzn83S|1d<)5 zDg0_2{JP)i$1f(rTZ-gv8o)22`Z!`NoqM$_-FEOXC<3P6){U78)73_fV0s4KJ5q7J zZ{?{XDcU1gbFpwN>Se?phOj*(bW~mIrxIdTpfGNh7c)4@#dr;Zl6j4=b=7XR-l)S_+a_uH&y(l1a<`V?(;kk+DI-Vh(tx7R{cAKM^ zsHJI(lsmV>Xby{?KVimXtehLr&Dr4vXs89cxi;KL3jCv0&^k`p<1_Oyc^^57iH5g3(mHuqv?9Hthj|AX zR=fn^&!D}!;h^L&AS5wv+a0m!{}p=Af#46)0Nv<;;KTl+$h*lQ_<9K51&<)8ws0efo2-IR`sc3*g#Sy7^KBAHOeYi_- z$PiOH+;Y9et{*FE#0=JegX;Gie41{j&yEeVwU&n^L-K&Xp~v_bp0>%Wc~@ANoZ!7t z-i_)&s#!%5vxk^!BO)^Pg5u;PxQL*5`3Wx8N}N2fb2aZvc&x6ejEBl{XOGQf7{~#eF(-fBpOxKJKQ56@ zS(-pIcgDgY3iL!b$>Ighc0IW**A5|rzsxj6o1jK+Iu>zQ;ErQ`CuI`i;iPSP*AG|0aHWK5*E4sNRTx&h{ zj$ph-Fb~8Rtwax9Q z>P(AuRb`}cSv5}1^)!5{i*GCx)1Iu%;pYOZ*^O;=>Aksi81i*-^}oIMY;t7$DcKou zZ*4|++L&}9c9+brG-syGtaiVh zP9Dg={s5uA?sycnZ3qgETzNw8W>b&W> zxV|ziC^;+x;Gmn{Cm9sBxcFj}J{a5P3*aB^$fK+Q+I`DGaQTb2j3vtV zvaU_fB7C3jW8!T3zF(Jq)9Y=cRlebM$+qe6L1ZkN>>Igi2oW$wUc&0d>%5F#H9Yyb zuR)UG7{6Dl-zAENlpw8{9AnW5xt~0(e!}EMT64LC>+lDBMg6{k`ZcLvar>KMP;6)R zGIm*uC{xeFr+Pej-|%>r@O%=X^LR6VInFcJea}1(OV27}0_FT)%a};r50Za5&m;MN zHUCvvet%A`pFgks`29ZT(f{i?G#w^n&F9*&0gJGRwTs$xa~4VoRj21`!_kH3Hj9Rn zIbtYVd5Qiq&d+C!^ADmdTXySOynV3!s{E0n&q6>wabvBS@=X5~Qc5aE3V=6BN>G~2`JtAm;L;flP#|zoLGS8J z79%~lH1JQpr;9xrvfAl6=*#PH6gv^`Uqi`<(C2-Tgv04G0VJqKQ`LC0DRoHx|NiRy zAKaw!|AJJRk!Ml5XD&T7yM6BbD8!Plnim-d9=qqE9FO(tm1Gw8b}Xzj3rdyfsl_mH zF%zl9ID;35%<6#k2LV#?%=?RVb0tvqGOeAUrCfR%dun< z=I@qMT|%-|r6yF7jsF4u7xQ0btI1@mN)1V*O3QX*XINWc#ySaHIZBQGm5lm(dO-#k zLXjQ(N2B0%+E!w!jOVPnanhFOtc%rihjk&($EB50LeF=_IOx69FqVK%($1-$m9+Ef z&o!sZ2(l{Rj3ldq=JYRF{k{6kq@7#;O;mZqc={jJUP>jIYHx6=Jx^lHqEIVC<&{{~ zl&+Y77)E5SRx5%Sz4#L5W)WFxpCeLJW+$*I$pYe!Ehra+#VHbs8ShHzxNk&1>t>X} zduqt>JJb)+?Wx7R@9L@Rika@{0(i=x^{WiLo&_IK@DbxqA%AM~Vya4Qo>xrMKg+2P zBtOfmFNhmY3uQ*<2^PjWArvK_EbUeGCsmYkebf)t?PMzuy>IKO%@WW}V+lfEwi^Rz zKNQGWB~4lqUM;L9A(46@44pj2rwMT~Xd9o4wqE^(wsC7+x@Txz+RA@0r=BI8^d~H% z?U_1z>}Y)I#0u~kBN$~?q4hgore@-`5MX9;811w@{)h? z#!}%2b$fb9*1@(;ZaOIDp|$hH9InE~H$K&L6zNL@lE!J;Txv?icIxF|rnzQ$LaplZU>t&i)7473JwJ z%7<|=v#lkxmgYoQI}&BICS30HhlFuqsJev(o~hKBFfOJWObb+D(IN@^yj5&=Nxz$` zkLebFyl(iqV@6?Xm03w2nidlC+gD{y&A}nVdvVm*7EN1)=^pkk?5a!NP?H-scC8qZ ze)ou&@k;Vd?^8DYfpxv2-eXzTOTRmed_zA`$TfaztW=Su@I_|wDn(obwHtn;|!K4K$mYV4U<@#}~E7y;fpQDloVEzsT zeeR|LYUrK5X_!2wY#J($GdJbS<8;i|w&ebtWZRJ5F`N7nHIk@yqTP=sIC`ViSs95z#VmS+L3CD{B*=6v|uz_(yjX$Mq1u`m2P*5@a z*nt^=xVO!j^&Hh0E2#8EG0b_gj4aV5xt@ST7ZRPP4R2aQ$NfkPRED(SskJIRyy;$^ zsip_`#ncKIGeWU~HbTS6;v<;e7but!CgRBch$FO(l_gX_!6OQ~2r%&(&r7jkh%R$d zMgl%meCc8O`xIHWxnWEUW}CC-NgvS|JIc1DR0i>alA`>JS|COzTA0>`$CC4sNh#0g zN;FQ=tl={=p0l2qn=rOR7HC4-W(2g27v#<~eG%{OXj7NRb5vur;QSHkH+|ah=JbO! zQ;;hCNE^O3y@@xt74;b@si>e^Ui{dwPH2dCcR{xq&847%^Yhhjq52Il$(wk1n<_?r zMVqj)bld`^`a<@B#f*8XF;2sBWh@$Klfz$Hp=}%nrK-|<{ZXU2c;t^go=KIy`jd^M zj2hBmk5BgH)gNu_qTk-qM8Cc1LmB8?0_G|QGTXeGi;KxCB;jRkaf!Ta%+<|1C7Km_ zzwV_|3eO9PH?AG&h1jo}x0`)_q6+5+-V!9GpEm8HZIZfIavtM=R_~X5$7S-7nFTUH1DVVrc`0@B zRWA_G)4_x7dz(;$K;LLKs^_wz%ZZo5YvgCS)bK50I^*5o@9Au5<2Q%D&K9xSoDk&6 zgr4aSb@zu}$b{-TTlT16XFReF(sagS@<0}9QZ0{?l4|)qzcI#xd1#v2#0As z(JCH7GQG1!s08gib*VoJZGef8D8zsQH8L)^)Hsqbgb4YB8bgFg3&d?%j)a!Ai4_(R zSv7wrJrR6b)&UQ|J2Pn3PB920q{&R?FvXO{$yRmIdJTlTc!QHx1gA4)S~x1Mj=?WySB zlb;>824DQoMBJjvb(t`~*GNnAp)Wg_;_@>hOrEXc`BM9=>HG;6QOv@K7HHlf_0a#r zC3R5k8?n|{czhj@rzzr=#zggsvM8YqS~KophOOD*5~ICHR6XJuQMzde#a$3BX!o`y zyTH^bmeiOi{vD$D9YuwDceK;kEbX-7Xev{7xv`VM32m&%WB0OtAr&Y!q9R?bo>Az% z%&~`1!?^({S(SX+S7mR3pvAEYrdZl-VsGl^-P;vy#F`LqVGYE&2jV1*ccvM!vH9_q zwrSeN*<zboBVR#KA*D;ge)2_)?dg5~=%;&*Z%e9?pkPOOpEp|Y zEWZVb@I)_uIzLhwJA}@sWzl(9Py`#=8ao|wL+m1*#iE*+VaJW0-qW+_t>TG1l;j1F zJZAh&QC+v&72&tA(jt`2kiJ%1`%_4dUA0K;eCbbOg!WjYd^gi>N;N+uE{=-yx|#?&ZVcyCAqffEFeWx%quLF(Yrxy zMALP%|Mukj2OEa-o-RlidGfuY&`NuUH6fw?Mo=#$X@AW4Gm{IgxdRMj9y-yPk43S8 zwNn{%oJB*{2-~D!nTK30bD9g8(>T)~=}K%zfGAeT*gjU~R_T2O1#HN9H{@-r!nu&{ z$xptSQ_!B=rzN+Am^>7uiDpJXN`T0Mv~2K9TgAO6BX0nVmW?#p<5nQrv{$B8(So+# z;gUprDanFKK{}essbX7uRWj|9?WtOe&TKQ&9d5wIFv-!yqqBO%Ujt$(cB+{G?Um)_ z66Oan)At8D8WY{NW7IMZJuPWXzZ|Jlirbkp7;7CW!={UCg;@87g%4H6+~O)@Wl5Fs zR+djPGrwXI0@$VQ}bMu16gpE3Q3^^XCQ`TsCu%A8VBuErXD;qTRAW;GK@Z3BKi=98ba zd~yRL+#TX!GS9VjSx1f;TbX5C(ZDQY429uv{0hY_J4QRt>jE}JxT~yWcpksnQ6&yEKvet2A!MxdIqKD}XRT|9L?*?V)# z+JGDpH@1i$zr^Z+o$lzFaVm_;(iM*v(nWTs?v%;Au^mlumKvo|7kcvjko}yRRysqc zPssn8qA%lQ-1yMtP0!D;6sl5l@Iq1}7}Fl>s>AEe)=`yG?_eD@!mT;GPAKy|p@S+~ zC_&i}!y!w4Rc9Ps2N%4D*Oom*y?{F^Ylu45tx1VUc6COl>&p~B=5m=tuTBusmCqA* zfzy%Q@d}>B!o{=Z$Z7=hYSyhIXW$q8C|-tZ>Xo{6nc*p6t_?SWChqrFpXY&KlzYT+ zc`&+3G;)k>8IrEGoP-#e(|s62M|xV5%YedN*P2}F2EOM8qyRg3?_#x_aD;J}%Afqq zSAR^eH;VR9*9O-fP=U*VP_{GRf2pCN*H_^3(ngDj%&X z*IGj0%;>nB+O_5qUV4VBRuoFJT4`3M)V1p6e^BsNh9o)7&`DleCPk>SW$xYc2Y$@y zf&VFmu2p3<{1Xc4S3#kbZ-_IoXfhU^IX$Eb7lMQwY=t5r7?B~K!w-jciam#LWr$N} zftUBTRl_NjX04E8DXg;q{+_unBRosol`li3%%8k#;P z6CgWSNBLqjE(K3nKxkP^n&g+vD|Totav(2}S`;p&K<5a8yFbC0rB{u6K~K%n8wwMt z>mt=gXSK1Dt%CN{NWz%PJ4*#q%f+6t#iYR*-NpGmRN_=ztG=#EV|=474r!(x>~(HG zNC8q>mEA^Gv5!(yBf2>=@-Ir6=#-KI=ax3zoEm93LGT!`P&^Y2ERU#KsPmTfUdIBPNm zEp3luwWB-ZFHB91xGj3HE!qgZHbdY@qYWGWj2ep?TM`D8qpO$8{_aaImhDq!QSMTh zR{f{Ua6XXaY69n}>{rnPHQ23rh^n$%v9KLqE4FsX;|VtMEXnu88!>K*86lJhc6h2p z1;x?aR8CN=C-J$abY6_g@>Ele0BorA<9zgTwCmbqa5*xe#72K7pLm~gGcw(Eo*QvJ zir3u^~U=$$Z0SUSwC%YiuazRcIgBp;dU62wN z5Gemrwd52r96Y+It8EQTw-FvF&XmM++xnrqP z(oiFjT!NFcUfHV7u#_izeIqih_;s~(gL!P7Mo%j%6@RBv%;u7CnhC`{uph=O{auDJ z@l!-moAGzVmP=jVshiboRgLeAO7WpYYRbgtfHdcHCQ{eG95+6-g9{fbbNU$B##yxC zd&tD3*F|dW1JNoYx*LPm8>kFl}chr8~YSXs` zgJp>B?XrUh{@qc2e^a;~@wlh$NPHee_mkHSK0zY0b(_5bTk~1_UGqCRU3}Xr)&Glb zP%w`I1J3VkjlUB@OLWG28a+NQE%=)?U-XPQXD2T^Ns?A|#^1;tRybs9{H-Eu!rw&= z?Xb?w7c!B&Sr&F<&Y~+#vE+cKDCVPis{Uu}v^&`$s3qlWJosoWk14c^K1Nq3%<9gV zIo;ctl)=+2cqvF%YHW!8)KC}X)&Xy}PZ$*;)3ghNp`?~q7_t(F}^ZN@0b&6*9` z#SS(tP)+V1gpTgb%`yvSeHWZ>*dtAzr5m5J(??H!=3iNxFxri+RqVCjn(Q04vLrL$ z{DZQj>0i=K8E_g-mR#fkTC%NpCV8-+f&COkYp$T!Qz*9QM+gLF@!dQGL~B_|C}CEy zlqqZLxM&+aLgSfwb<4JfLbe1j{$PB)oIMtGf9)tD$5~}OlA%V%Bq^w&z$t;PGrb)6 ztjv-9y)q(k9e^6u)IiohthqzlG-D!rYNMRYV~x6+?Gp)SRBBiPHr3_~irFQ50tXFj z+p>qpeObffMAmB~vgbh!Y(}Rn*;X=~O^q~tDV~b@Q=7g#=XX;+u0IiSy~sdr^|5iT zx46n~uSP;|XG$<4h2yE}CaRK+@Fi9&_0iE>rFo4m9712p%?fJ2lK5W& zYSU7b4K>C`>{*I7^{M5^li4JJ3{YM>Yt8>NeRP>)ACDSMWjwZTf$my^AW zbrGwWJFO~kL)G6d6Aq>u?WXTOVnFw$#KJZ;?GW!o;Vss$nLg(Hr+{S~6NBqe{YBxc zP)!)S@B(YicT!gM!mb-CbhAmUW_{eQx`F+@#@gKPciMKV&W`_x506c&{)PJeT>XBg zPD!)SUsTrR@l=|VS>Xp;c4U8FdK&r(|5QYJTEq^9<|{oABc|ew`V$=G^?98lOPIZe zE?E>s6os62sP~N7FhFlvjlk)Zd@q#T9*`RJ^qYaQPof3ga6@msL#6_B{q(!}t#?Sf zVjM45FUt0mSfva4RlsJEwLSMZoftUK{2IqpTb)C#)P%E(s=2EzHX%V^m8=cQo? zjWD8LG&6+nr@t%eMw9F;LfWercEk9)h4B@A+U-L{fx-1sk*?eJ6043$bDB@~H%&_w z{zSH8ENqgIQrmD>{(@qrY;P70ah(!;-4M>4^$5Q z-+<@;OK`Vn0c3Yb%uvyUOlJDGaMCUe(r~!D!~vfYy%dOeunJHX@67 zkoLO_jaGcOkQSOk3$~CronA;PlqyzIjI1gj<5QlH$20CRhqy(rZxN~d;M+CX5=HXMqZNHIt+G?*)}@?VbD%jC%lZpkxMn!3Rl?YaQ!fqyct*kv(~RUI zC=OEY{7GNf#R=->0;!?3`B-62S(|aEKxOzc15%`!T%=Ui>Wb}acEoa$g6`m29D#{k zxT%!(SX<5q<8gbjB~SV#A;&o#B1QHHeabWfG=s`U{0;`A72KtKMC?oVB%hSB^R>0I zn4qWb4eOGN12CQ_N8Qcx}V<9Li@x#?(!AgK!bRK*^)ry*^_G zilxkKjH?!QWf$9zF{OcQF4QS_P6{+<m~>(X-5u=j?56}|XkfogXYa9t z5LTSaU@iR&&Ax<%LHfJ16I5o!nH8IX@k?CW#m<&o7>5f?HiIUNZ8#N*#Sj?0jd7~l z#<;^$jtU?W#!Li!CJsbr8)MZN%(khrjd6xKIbZfd%lN=HM$>UI1Dnrw#&3EWj&`;& zzQ+2AicI;__@qSA@%aIoa z7|^|X(`Oz)R?y&RAHI%Ls>abK3HFU%bvkCMHB2=`Qw8a%v#5~%v5NL6%-vzE=dFJe zMHc{|Hl-UqRceDGeN~ek>bkLCANP@-Jead$2=(T#93kd0 zcyOHjrnNHMdE0tlmF_rMt~u8Xeaf-3rVcnXL%I0uI)f>opqT=AH zvDL;FYbDWG993rF$m(&OWxLrO=Cw{@0!AX+ta}-HCjUbUW!hj(Q)SH0Cqd_uE$XQ9 zzAlBIM#2oUuneHG-PT((q^jzC@e$D_1VuO#$uJoY_`hQEiNfTuQz#{;fkVVX)l>t; zIi0KI;`tqRaOrH=YAxvI_?IOfzX292=9)!gF+J_zvRT2B2IpyaUd@dwJ8xk?2Fuku({8@6+s&XV%7t9#ZwA166 z*vOu`f8&i|07b*1bU~Mr@YK15(!&FeLQ?I|bmeOR<#3l>e;&5Ql~0HqZmS<|2U}(A z?)1+gM*ej3cG-AseaN03-8`?vvLwJnWiQXnuKS(V$_mLe_;A1Kl48vdobXrY`$M`B zrNbUDS|6l*?eTrZD>VvK)(S^9bl4_%mXb13OUex~q}ss};<07qzyNNb?+6srFNTv- zRK#$JNRG=f`Wjds#HSHZ5R`*pW3~h1-neaK2H@zzz*8a ze^_lp`fEFwRl;fgwLQbLwY`4sHfW!W6^FE%uD4;8J=U zr+pvBfhDsWtXf0tDvBeuA!2F_LJLuRL z!s?oapYyI%x}c#`bE%AEjB1>(C&@UMF{;n%en!bLTgAEj;mR7xD+Ax8ivz0AYn(#Q z{zInF^S`Q4bK0m@{5p{wo1=e$H6N=A%i6Y1J55+ZwF9b2h1~N#?Q$A4qUHd>2OWml z!M~lSnmA2R#jalmO019o)h9#0wfyr~>>QN{2TK=$$xw*Wo4NaSuXrH2fyG zo=aPJJSga=;*VAd-{KtD-oXR2B#!+R$Nd{`l^rRKB5@|~OjcGC5aWz>LsK9*=}cgg z1Qrl@R06dGnk7&}piu%kfpQ5%2s|i(asulmzz7w;M*<}T)=40Q{!(Prnr*4sDEj5O z&|GO~4fkcd3l`s;zcR7ldcrb7mB6lXx?DQ>|p?kn~Tp z;E)9uaZ?jBp^)GBp^)W1`dabc@hvN-Y5Z>*Z~e=7HxN!_%=p{V&dtL z|Hjt%F_1G4LLSR&L2LYY9$G6a{u|;)wZ=y|bcfg7l6zA1S*iGFmlx-x;$z(K^i=#5 z#glP%@FYca#gAizA0O@P=f`=<^l?ga`7u+#6+faXDA|Aqz z;aPBs9}eVTeklD=17V@RXFxZuc6Fn3-^&>AG}Acnl(SaNd@qO>s&juoyj4Cgi0dBNfXRgrjO3}RB>*a!V-kt13G9eo90-GUOEjFOM#DR2 z2>FX1mSqJqc$wO912dZC9R<2TX-RcAhzMe4CnPyD(>ptOfhxd1*UjKCJt412xm08@ z|J3~<$@dmG9Q?@x3}W0p!3f926m9gN5g-b4X|EjUx9vDlm!gLW*EEmy6^!>}F#Y(j6B$V8;Kn9VbE9AuterJw=L&7NU zih3mX6Cu<7SHZrY5omu}p{-db6gf2Bg7q)`WAS_2W zJl1oLMIbtOE<07R+P?rzs7K?@;f1bQvtVmL^*nD{zqwS=fe zLc&_PiDG$`u}wPQVyN~VYyFOX4S5=M3bh0&p%%U)|EZwnP;0b=nzl5Os0gOs&EPs^ zpCd`1l3Qs+2cln?2xRCd^kDNdUiwj`}1hh8hx*t%gACslU5TgiR>)U7_1zDQ-4& zBVvt&YYAMB#4Q(z6JpluosN~HL~theduPmmJ#lHYgP}{*7eLA(>UIgax9ZS6)w>yV z<|PpIe$o|Dg?9Zt^e}q<*MDZqqtLS&bM${f&*P{^=;^p?U3$I%?uXFxM5074|G%JT zKQS{xDKtHtmUdS^E!V~lr)8_qS9RwbB$P!<^=<}lml=Slx(i7^oR%V|+2eKTPa&K$ zmpNp--YUG3NzD78A;elQGUbfbzamO0H-v?aBQjbWeN^_(lzgcuai!oR1R}Kl4AJc| ziPo+Bfo9)5RVrqfb5+<~LI>66TP2jtT#IGOiy3^fM!;$CWxRufO3v<%&ibdjegPci zYa5SZ+2buCq0wgt&vuG3R8e@J+U(#j1Zu-9P6-x00hk>;+JRY>1(O8En8hx}q8}=d zj|Foxm{69EQ_KPdk`Kt$3Z&ZsiDs2DMS&CoGE0H{w*zu=7RYf51hc!SRDs;;fE=F% z@+ppZ@MRsKs8GSwIWT!yFwZ+ML0~LeV+Si8n2*)W%t81OV2oMCfIO{0Mmr#Tvq07= z5IHP;zXJJ!cbffd7RVJ6rCcelA0vw+V!!7PtVgRu*as+}kOJ)BhNxu4S@I78#{OiV z-JsdQh!ltvw#d0iVE04gx>T7mmzv!i9oadKaC6+^lOQ7wA4=-Y7embfD{x zJfkfm6t2q~8;#(jIjQSLIw?tU*JR0x1eLrD^xvORhaufJtb~m2d!3YT2KS1wC(dKK zuLY2{ahCL|FQJAVyvTtmR}&fsW{bdVm~{j&uPB%@2PT{av)+M`4*UlNqd72vESNP8 zOaU-=D41R%z^8;47oS=OhCAGgzNcV19hh!4>v8az=)epGrb@y5mjm-e7EFLBN9CNX zKpGv8pJsu)FW&jD>w7}aZ2e!3QTjFdUmB|PKjmf5*X-a!s)m^yc%F^sPrvEMupcJY z8g~6KG1d@!F(}yIr#4k|Od$$yS*dl^XN+!#YUpfyC8FT1UvUQ*oDduNEWssvbU9Oi)#x%_Lhk5ty1bad)oKdG z=#t0#SB@@@d^yo_ z^@W+9qRIg|UJ4es+A$IkkIZxlgto?Sga)Sx z5wTx>EjbL5D*Tm1H58O>OI}y()$U679#7nv6~yJKWB2T3sqp`Yyw@=)!*_$f>vWt- z1dqX~#N+tZ_&GdAx5gtp#J-mi0W8=jA^o-VDl4DrL?5APY{JaSo)T4-?`1tncIC2z>=cbW4eb z|IcSDMjZ14-coVC1=1~xa2fwq1nT#wsbBnMmZ&}zGL_3dK{L*#o(4AKKuCw~+>F!k zvP(}k&_Yi;xR1hxmN$E)uKAyW@y`{;JFLB>N=*!jn{_$8)g=5ZlhBz-h?xs=dnb}` zZzkc_0|{POz&s$6aJNd(T82^!xfp=wBjv$onD3}Xk~=3!fKg^Q0cVua?BFPHQ=@ke zvIh8n1D?8`zQeN0rEZS(l4DQCsOXhg8Sghr4x{?zD&v#X{A1$mnqpOnPL>NmLOj{? zFOQV3JWXp^2RqBQ$x0Eqk()lewXFSq{F0Y(z}t@42mP{{k;@?I+dP7in^ z73Uhg_{LQH9Uhxodcen>@wXt9$9j+rdQJ}* z^)%&j(hC0;0r>O}HPL|D5Aa@P{JARmJx@-jL(v*S|E z;xcxuvOA*{_L}GI;Ik^N=wu#jc0LAIEZ>OOLLryKQfa6%a7bFuMp_Z5_Yq6I$30XMwTyBmdo8NKhMtcp~On-?{czS>SSTj z9>gZPSyoCGWyCW>c+$zza9QfQPvmxtjzE-ymut^sUz{EMA&G47a(umP-|DO~ssmMW zuSTEs<$&?^cv+@fR7dhoW6=i>epse5AW72lVAGBD! zrzOy11g0;VL0Rw;7ZQpHC4?U=Z(pGlfE~PxSJ}_G7_QS0h9{Oi)N-L157uAQ{!(Rx z|5h~!R*8;03T-lx`#8xhxF<9BwEtS(&ET^C$RK?)?+WQizhf}NQDK6!wVgKD!6L~h zH7`u(P`emW9ZMnlp6KrqTrrjx$dIN^Ly-6`hwZ#4n;u(?q^2$-#O_sSD0yd{vp&39+fW}a zP5(9E>>_1m@?61l^n`NROUrIj_S!ldUne_zYER7CN!s)r;=X&}l8Lfy^lxl6u{swH z+WG4A8~2tzHq{nv6<^L`ZcX##(BCKbcc=5SmOM|C@&_+@o}tE^^`{9fiyoW6!wg=4 z#!>*ZTjV$M>1?k%;_SpyQ=q!SZ+JEr-fqH^%Hgk-zyA`@fXG&%Oa>SRel{x11`d7p<2Tn89Dl9AD&bwQAA-SpK4_6#oo2SC;&pDRG13FEU5&DH7`qkv(P= z4;hhVCzzT(Ro^U|jk_IlNVaET5png4=`UBvb%}I|55*4tj#}YV9z$;x697(kiW&}i z8VPPAIN9fwFFA6TmgK25UM8FfFCrxdIPGN>mKU`bBI~@{)<~abw{P`mTO-AC5 z;3ik>TEiv7YGQV;vtF4wj!6mgzTqKi#&J}8n0)I zsw0&zHU>~$9vs&3ORrU`<-tFfy#uKoKFBR>65N%QP2LRr&4DI5No2p z9lD=W7`hA+p-L2U&@y)LO|V0yuziz_8g_68ugShZeV8iW5X8;kqY43PewlaCjU*yn zrR;M}ZXG2CnEB80Z^YqpCyXXj`MwA*$#QbgqhS=@5>wTz+ULuugf>mR-3R1?BU}`SGVB3$&)XjW+Q@UJ$#(N&y$HxuwXs8oOJ3&-@pWf` zGN+Fc8{fQJY86Gq{Xe(Ltb2?UEeBT&d~k-kbYkP3$8Cn5kMN~LV_#-32=Q{b))Q{KSmvHRfTehf`#ttW=lIBqh4;&9>OOWj_yAf{40hW<7I2ik2utP znq&F(-%)mEmU&mXMGhkUPV5i-hNwQyATh`97$bNVz0T?al(?^zS^f8%tIPff^U=O? zICxH@y1C4RsLsu0Dr>9C>c2y>Dt&MZq29AIU#U5p)R-}oxkm7Iae|1-*=j9m5`|J! z?NoQON`UZj-bKzGQi~5>SSly0MLH9*6No1l+9}aSyG$(Ll@AdSi*^}MA@~mP&$ji? zhnXW6-P71_!>f672=x&YI|cP2n&Uw*b%p}8fv!Agz|mDR^AR+z%tH>GBp7sa68Eeh za$0Hav9yN9~{CS#nFQe7{j1*$u>A0)@qxM9ldzn-YsgGgBs}%P|6Fo8Bu7zb?5a zIf$^^SLy_ja_i&aXsKd-g^|PpM(^u7x$xDYfW`foheZ@WxHF1f{P9I+|3RzVGo&HHM)G# zUCt&xP?pcXEl}H*2`o}gq7mP*mb?yGol#rR&V&Xy?%;n9%@cw;EC<`7B@X@}2mkfp zFY7bFJmKJ<{Vh9bN2_Yb1g9M<1nF84g~ir&5KS!?8~(^>B!P|gg6Vb03wyDrS+a&aL?Q6b9wI-{5Czb!} z_MJ-$=yOZ6+V^7!O#9|y5-d33|I|L=nr|LCokHlo0J>l4vgErGm`%(TxF$r-7HM3m zF;6y>Eun8LkiNk+zl(FNr`!%Qzyswknxh-h& zE{F6cClBOt;%XrALx!`8%y4$4*jcPfnZXoOKbgJ-4hbyy$8xi5gY`CF2bclt|FA&8g$Ag7AHM!PF zf+S5-pY2so!4tOViWzh^;Q-V}@ymF2^CUkRO?75L)O@vp$F3EucmTF>4VF8r2MC^kiq&lSWB!$v@XNWCQZKk z!u^4n$nOyO_&>Y?&JGch7hWyNEhOu9INDi#bR_8)HSS{3VaV)IbpYKi`873+6mhr6*0 zR4mr0lyJNoJ440hIk98i*oi7O--$iljXgod4s~L`>Bi=(*kMj=nH&4jvC=loKB?_n zZtUwSHq(l8+}N!uHq+usZtSBfHq*ALZtRa#Y^D`)H?~>DW?DSmja{l@Gi^KHjjdI& z8LH28V=IZ}bScP+&r*@`bOmTTO}M~~JyylGIk5>h)|(A`p&R>tv6|>m7v?H&(8d1-7is5wC^(3>Nz)^4%B_h@?S$vho0UR=otcGo_VHcI&CJG z@{5O1z+AY6#k;IX>6N1-JfAS@llAXVRfzrf$K5p-)Qq{>>!$^i7HU94+6!8Rp2aG{t%n*7W+V+j(dkM3dzf;0s_9~P%Y`TLS#B8X=o-dL_tv|l$>&sAl-15^@ue60urn! z{WUpu81WvOF_UV_c1LdAXlRd}3mV7J6`VG)VNALX(61R}DZrwAwfpemk+zvJkMygMe0p-c#4)II*~fe3k0EZr1&E`+ z=P66**;5hvlkuonza-IFeMPKNBjvw*g##HOd?itx{wOh0 zZKuD2ko2@pe>@XXAFa}_Y?IzKMRIofa-&%J?+6 zYMg^h@={X9DilUw+v7tI#ExFW;hKRFgWaUjPiFPP|Mvd}B+g zNPM-ue(qGMA5qq}U)O$9w48z(K44$F93S!FO!CYElq4-u}8NfBSHAto-ts9(|Jgb2~?|WJKt%bx` z7xR;ebak>UN}>zvGq-qE83#lezRGfjwFM=LW;$9nVhmTRM>n43Y997uC;{dWolN#K zJ%5R)f4+bRc69%4@+vyrs0yhMK;-4pNoAniL7erHQ@Y>kP@s?~)6T~-?>&zaaP)_^ z!9R}7E!#FrSJh%2t^VVAx2{H2S}DLX6c}NxabAW(ud4|5zI&@X(z`ZA1ZMIlq`MlMx((YqT+87P1sEB3xCmtG<}q zf)jkiewb02?@cEv+E$=U+e>=iz?UIkzNQT$lGlbk*Gp&^ayf)&t`gJY4u{^izG8Jk zTHH8%0KECNhCKb2;QgWsMN4O38mIh#7|*S*)ccxuHxydAGHCCxJ|~~sV39HQ6kkn$ zN{;=hKs)y@u|NFbaO88E$Ps;rV!V>k^d~Djrru}lc=lBFL2nDEF-wc6i2cz`-7@;m zqI`L^gH-_Q#(fsW;{V=5B4Z2M)DCKr0_u}pEo$ynsS0R7ld>peT9P2TRLYbuBFuuN(x_BQZ4o>8Zv+v)LP(!)@}CB40h_$F_)BdIPmo14leK`HHr42D-x3Qml1LaGWTswV#wCSTO zmR`p9N5gTh1)3N383!PIK0c+wh8jIt^zyf%*Vz5%*xHn~AvvD7NQBQhF>^6d|ZR{>}(3d504*j)={uQ%`DC z*hxEnaS4 z(N8);_2tQ~P^bSHUg0na+X-y~syjAjPpo1OH||PF;k}dhHWVd`9wIf88ue2i!dY>n zqkv24qycqKN)368?`3V1{C5Gw(9vO!y$SQ#9vf4?6Vz`+{Z^{qwd(ga^}AaAwyWP4 z)bIb(-nW3qbyer?v1EBHzhp(WWrrrm#*W3U?MxgI6yp%dl8uzg_8==p5W~!9=14Pm zG&6S|mJ|$kl2B0M6hxYW8Uj`Hjvkf>Dd^+T3UG^{2?&x8baPV>#04ccv?9$7y3kwh zzxG~xbk10glXBbdyZv(fZT)+%z4qGgwI8$2@#o~Y9_&eeFCh}8j zsbEwTT756;1h>ylqydrY(LD%F}73a#GNB!>HU(eR& zd>eV|2*<1#Y?Y(+*gg_J^v&8xXXV0uiz!mf6EfS>+AG!tLGmF zDI@E?qvcY-^Vj@_j>kHS`;Hp(YeDH$(w8C>a|^y4sA$;NzfgV7aSjt6nvzB|?%TeB zV%45I96NV=5ccoh`SZV4l3dVC$U>&L@!NNmVI)uCHG*?r2OWifb$CmH(~?_+$7 z`KK8_#dt>ZFX$2|{BlzuMSkB>}bGm%IPVS@cFb@?P>52TO(5)##$WuvhL>!YBM2u9A9Yp|11fA9 zt)XPl(u~MSm00CRW5kn;W<*p*VfeVZ zS5rWi21gYgHlmFmK$&Pr7vuiYKnjLH(&S zn^FmkD;l$@7)GdR1mYNPapTRq0&h2B(XcNbO12w;5Y1~0$q42`WUoJ!NTO+4RB2Fz zV`x@05=}J+(P*Y=B+%^spb<}@2SSm6*=8mVKtCA1Gf*tP#;~~u6@!9-%8*ZeGzw{v z_GMFt{OFVIlJ5k|H50LDBw=br6NsYIXp&-N`-3P?WiS*oYO0Lv2-PfcGzL{#ak&j& zBw(CG^`JWU8Prl#)YfP`K>90@Bm(B*TlX3Dn2t@Mcp_=+H(JfOdBAYB?P`Yj%P&EuhrrY05a;U=(AW;+|krV2Gzm4rllZK&uAlcrKp@6L&Wn-{5 z4`juWfJ}Z_!;Ctc;saFFgZ1yoGy)Ov9I5xzh7!pt^GwKZCQ5b%-a^0cYI%r-0*)MR zqli65KypcjV^QNseN_#UpvzJbQpch-CRI9N1*!E&ss%mar|`{hMLaq&9yvjuQdEx& zzdMLFN+d~<#{!K)4Qdt7BilpTU#B6|^OfV}JVXZ_Zi``#(U3xhd+5*2Z`}ixtukd_ zCc8bf_^I5u+k_dRN#Vg-7)z0oXbwjkePNHDeUqd4W$ydCaz0C~oqsx6)+;Eb+xnS_(2XIF2V23K1NqJ%So{SSg!A z%_&+Kwc1h*ml@y9@n|aM!D!%mB&Y@%sZ>tc?y@n6g&IiK6`IhKp(;A_T3TDT+fscp z9R^vd%~ZyLP(o(J{pM@J(4ZL9N!3cRy-K~PB0``hjg(T=UrDvrUU8vZSO-H1>{ucJ z*%l#cG(0L@EESeYU#WVcH>I#Xo2q3{BIaX7W641A86?1@v77J*%>a}<$)LyIj!}vM zsWZmnCPK9#+A7LN<snB9_|6+BJ!C&Jk5;GrRju_^Zl6jpg3kI2MJ;ie`gsQANb(jZ>-%ThRChJEciG2%avYKc_@ z0&>hDh`n(OmfL_Z+mdmgWnZAictW(K+LSP!NmyI4u2n~|4VO>c3`c!|3aJ%{pxO<) zNvQ;R3!y8Gc&Wdl;Z#e+Q%3xj@XZtsKq>f>TDM>?8G){e#xi{)2VBC_XkzyYO&B!& zr_sHhIGqRR!I)4QiW%hu^E9T=%rc(I*wtHzh>>(p&=+p$7ooEFy-W9 zDQ}tFxyZ$rcKJqQG#Vy_ek>X>g-M$*UNva*!^uTB6gh1MJgQ;PrqZL;y@zHA>X0~o z_BhWJe>j>TezOrPoPSBbM6oPdsmzBxnVnVgT|$Mv%ao4}XQ>EUoewo{r)@D-c;3#_ z$?Tw#ewKv2!*d73z0aNtbR5Q%nMep7%Nw6_>7*b&pIuT<5?5=RGT=C4}Q$GYG^PXbDuxMQmTd ztVSM{q(2jP>}I z!o%nI0JMK<8fO#S~aNqoQ6I>^>US@;PE+Yk)mE?SCUUDyXxH zJYTu@)*Y|Z`yhG#Lt5GJPzS2k*w6Dy4-s?#qm!*S6$b2YYb&i1u+8l8Hm!?+{ zYC`HHyz8>0%$(C%r6~?NqRWj3t_XZ|-NO1mBS-E!EMk_<`&tfhTq;J(QQH>YG*C&a z)c!%$K7q|q$*AX-TaKfWwAWe!ORB9`xDP^tB z-=0kQc^O~2-|?q#D~Fkw$)CjXg_BAw4~Z;?%fGau=?cl?xMix{uI><2GVA!3vjpn} z)`^4}p$RTGAi7*!KSblsA)Z7^6%CccwX4ukbRv(Zu-fA;B6BAxkIj}FHYrcFj@nv; z+o_p+hSWBk&d{qD_V+mBTau%neK?HE*3G1s+UhbAGUpq0AQJWRT%^Xcj-!5|4pGXF z@`Sb{qUEW@t_t~@O+MVm(d`2Yttu%m8KUxz2wl~#t^#BRxT1D3CW1RlX^OV?|ZM)rrg z+*Hz}Vo?NI=#|jrOP8siwQ$HHOa9VjT_%UtAVkvz7ZpoxDA0De;4|rt)x=da)nxfh zAz$C~xkC{*mMy`Ux!t4v8y!$_Sd|slC!yoDiXacMh_Rn<!N|I@sFybybRLk~FWS6Gd30XKI)nWnnguN& zXZ9XU#86n?SA=~nF+&|cF~%Zvi5$jdIM!%+BguPSth1;LMlK}C3v1cS5gN#}=K--D zH-cHWCpEkwGGe|2jcBZm&2))J<&x(rrGq^g?XC4Na-j=ct+&+BQAt>_VT^GqsUlTe zw%nyu-vg2&6N$fNQ}R!g;Q^(LLcVqUGjB!^h7 zVr+6O)A&kqcpISSa6s!{t#_AxU*Uosrh^5kxD!%;Rmx*@)zT?CE1qtdEwMNUE|(rB z`|NXX79Yv6ab@ChQaKX$wV2p&#&9L0Px6`gLv%%<3QIzC`z{x+Dx)|u@fChQZh!GR zm5Cd#hNbe`=3vyIxcWTjhyDKxlKXKT0)h<)m`Q_DnHvI(OiZ4sg z+>u|Jzq{&?E&odS8`PzIH4%A{p(1z~;1Wgcv{d+*iA75HyS$5IF=CncS|9F^s^mIU z$#P;9nxE`u*rrC3=%cgbtPce>iFnDuH0_c{^AVC=4mq8U{5f#+kUtlW!rD=ooaQ6{ zN{gd%k|TLU*X77YM9GKBw;C=RH-Kh!k{N$=y|eLm!v2r=|M=Rc1B6soI@{bo3pY)a zr8rm&iz2v}5%+Rd+&a+vkl6X(;l7Ok9xZdd3TFP6=?2VD{@-|Y*ZM4R3E@SW$sY*;o0>}=H^x^QaSd?GJ(r6knfkGogYvOHW#H4C zR=xt{Yke-4KcyYA$kehZEy*T1unD^CL;As3CZ6VAxrJ_(+X1T6(PY zA%6W7lP8UTSx?=GsuK;r`QY=<&4eo%{Q!LrKjq!^!XCz5_KQ_j!VzA?8v_r?wytO zwe&wEi$51)UlOOQoh@pueN>GfP21^miE_|>3|2*JgAp~_0u8w@ME3#o1z&`}07pD7 zm%phQ_g4rzDO_2H*KjH;h^N6$!2FZnv` zG|ATq+QJT$FHUt(bMR${4)2uL=g<{``cCoeJQEEkTS!rpe%?v-muYw2dFP#hMpRi$ z{12{kJn7$AQz7%7w9(!x^PaNO>J{I#ji&f!K!I!}nJH==FO zrrROa8g}G5MD8KbSFR8%OLK*H3+(dXiqMdf*Am{kcdfWKxj|eTSTC+Eg}<(NVe?$k zOyN|4+c~7>fCI0A^!pQTW`!2+a33cZLzH`s<#Vl+jCcl z+(3tL@5UP>aMdzB#-}Ch*p?%$&>i=9Gr7Ksir;UxEkraDFpAncKlhpU);9hRBj}%#91h~ z58RIYl_LM{yqVlsj+gS>{)$t)^0HI>(}e;tSHD3xFK!ew*JFIZEpoZ7VaILx;NgmaeAqdL74d#WD0p9{OwRb$McwqeA2@AQ#sPIUW`;rsWt6yi;_(O^90$ z2yqI^bUW%>da+#Wdb&n9FH}o<4dRj%M=J{G#JfaOX{}+aysbM|iNe4JM`7tYN1-F% zu_lJ*LBEtc(Y`(FMGxxv>H75|fI55dvP?b3@VW<9&#m(2xg3Q^+qiyV?Oc9rwb$uh zMeRd#;Xr-7vi^W&l6WUt`e&jR?g`*NQ1up z>O67vg+h$6ZE}pIYoW{Fye!um-nu1MI3G|wrR8p4mn+s?ED$TvSFYniT;;}m;I!7T zV?&6H9i zx95lrj=bCzUe&fVFSi%xiQ?p%+=BZ2TxaR(+?kVDYu_!zL6&6=JBsr~abS%ot_NcL z6z?xuD4au?HaW#6jG;{^*Cv#6)BcTfj#W8g)gg>k)N^}Lt|)prSFF6aM#S#GcTwPm zNdA^QvE@R(SdY2CveYT*`%ek+IOk1#OJPh<$Pn2w1nzJxGG+TEb3}fCbRqU?q|5ee z-IXU6-j6lWgZchbYAe!RcA9E0%#FG{uhw4+Uf5gs(AP2z`rR6)ah8M(#BXYZUSyqX z4Lb@~LJ#Z~g^ryfkJ^KDdh$Av27lC#`m$VWSf#ldX^Jgrwuy8A|2d1eKp+68GUP~IVk_fpfe@^dNI?C@fgIu?Pt^`*ne8WlJ^JTm1QmvGvK>Agf`c_ zmaqeF(XM$(^A?IZ@ZIzQAs%L4YuK?SC!@!e>>^>D7UIKj)68!R%lwN(EG)!#;WUpe z%=MpwaoBI+RQ+-Ou!fn(ofP6BIL%`XZ+**Zu_bU$Y^lFbY$?50Y;k;46vTMWUbs`R(_JND5g_+D3Ug(EA zO4p109_V_EGwv(z_9CY!x|lEUTAs)U&r0x2eOQP!{|)1j<=Vosp7~-1@f*`ZyvXCy z8dhUn>5{GgWfkW2nzhBH`D=?Ed26-)HBbiGKY`V2%kL86Yj6!0RXuEB%CCN{aNUEw z2b^qI(q&k0@@akt)=Bz@5!WTtufSrlI*W$J1x;kj+3pnEQTHvVd!erTM{sZP$GYy6 z4jVMYO8id6a)lh)=+&_Fc-uN|$ShW24B4sr8aJ zwQ?^KC=kxlEn==ih`+cO>pSOZ4?`ySL>8aY@lpq|j(3Ww`-C`f4(dSg3^Ws%Gb4Yvr{m^|s2c70p>9!mSzXZ2O(*i{~6t4Rd z=mMglF4{`PP%FQ=)3|D$kUosWCZ?THpnv?g{^!7d*tj#-`QCC zy7y#rVgJr~bS+aK;@0W!MxCgH+O;8k7A_4(W3LkkpT4o!7YK)iyS*k7N_zMb1H3O1 zk9zJ~fbRG_(!HQ5(0!oM{llz3iNc3}L{^TzwAsvWL_rZ_||>Ub&=C!`?-+Q#8-$7@2Kn&Z-nRV?JV+dYR;p>W`& zd}DHJo(BZ{3~3?-45Tp2AqBi1SnaTon^}fTp~T?71=4w)fI$b={Y>}>epgfpDNGY9x60>L=ELYMf8yDuUq4}HHILk3hz}>15sW~7Nf+A*OOEoez%g^ z^@tCalwhESZO~<}Nt{SECZ$EqE0U|q#MLzpX^XacAD8d`VRxd-P?3-&{21ii9tp`; zWhxT4*B>dvNmu7hg%-bEl2eIlCQaNFzE|f?Mrt@GJjU%)Dc?!$)#)o@_&qrw`g9$o zynY>80h?A9dw;!voIeHi+_S~S#Y^5p67J=7jX#mOk`22XgD->~th?mLh)#Xe*eKy#l``3)`lHZl3t&Z{fT!;{VBYiWsBI1 z{D=>hIN0|Vtd0k?7d+xkCUu;431FL%8(V0T9858t8m0&TL3e8 zE5}p0b;)q0FGlZFLE+KwP2w4%)#827RO|?Plgw8SN0MYe^izsC8Hy)UzVPi4`lSnJ zh?TcT)X)oLMjPI3M)Tr+awR6QWx0x#g#K{BI#&OZ1E>J}NM~{bZ+<)sG;C=q3H@C&lG2QtsMaP}FExwrPWja1#k9RXY&4~MS zTly}YjsmoeZZdH&Gb&j@;|l5PcVIvvEV^_ zeDU{GxSDY)D?Z5dZXN$;_ViOsUu5)t${t@Zqr&BkGge>il%QCV3pqW{szgzqa>tG3zOvzKqMG!yQwKzl(8*ahh?S(fM`7 zXE5r0p_ViAHG96(-?WEy{Lo)1`Xr;1%bVt~me=(S#W%}%k#UGo^J%$@S^4Yq+5EbF zG=E7}zFMA^ulcjf-No&mU2dKJa`Lr2FXx-SjGQa=^I2{OZ&rI`kB4kIF5SPE89!QH zFiWm3cXm6>=z3(eqi(;;>1Q3UaVAUO(>ao!?!4Eg_jG?}j~6XpmtXgbrtAKS@wh(A z*umJvsQI(!k4~@SuT+lge$)M<(^qHB8^PncfYD%dF;+8r8DorR89NxYd|m$Ra_jJG z?O)BW$8qd3<3RK2{8L@Z*YyRve%N*BtFS7?EP0(`R!j%=%~Ho#;X{H`syqXV6gY=Cp0Rj6%&37hew z`!p$Y9H~a?hlW=MH zyMdqGgZ#)3d>MY4YI*wwVSot*phASk8c4V zcnGh#6>{Jwd5Pqw@E7`%`{VtRZbi#4C8TcoFchn(& z_`SfbCsg|zzz6D)C+Jo?SF(To-t91+o>TZD{096B!0((yp72|3S;@xrw{ULI3AZ+& zo#8it&%6iY8U8t7H-49T5PrhI9jZK5dsC~8D%q<367C7`6PCUY^9p{#3b;l13Ev4< z@KfXsY=oov6$74rKk^41XD0DWI2vzOdsVVqZGkHT58>l*weS0Dj~ha^d`^=d*NL0PXONNPUvdT2_N|& z$_qd4&cv5KjJAZ|YI91qsGo*g1fB3nxZ;c818z(!eNO0xD*>JGZn%T+cLLvf7y1i+ z+>K@IOv&E#^xZJ;1f3A~hN6S`f!E!m+QDjbO17uk#+1Yz zd$NojDcO^L8}4P$3AcR|{rwLL8`y8P86{iNe}yXrkHn9`?h1aZeJI(F)^tFRgHHGm zTpRp^v+TFpgp#f3UH4(UfrqdQ?yK+rSp zt34;#dH&7EQ8w@sJ_#3wpYZSD&caXl3f%qh<4#Z91NSiexW5y>fE$7zcXcAriE#lx z?&ZY)hMOe*Pl6Y23Vz(TiIWeY{o%*mn%MuR7#Hy49!;!&Q2B9ZCcX$q{J0+zkN+9k zi2T4)pHlYexc3s@groHrcU)rsrKU7s4j%*ZlndBuosTjg=ye(?7s;7gGUtI0M@ggFvR{a@Im$yKFa=4 z;MyLfomY5}{E$!RW+Z2JY@v{u1C6+>0n1;YFqsuIp1g2Jm!0<~8JpfkSY# zei7mu{L()Uymt`m7kKEsm|bvGh7#aCaB|-T{71NkdFZG|g(!rph9BSU7dOGV;is3T z-Uqh;`DD*a_PXRJBwJnb6Oz3x`3cEp_5#XJcn#cI$oc>Oame>Ov3*b5>!RN2buB|* zos0GaGrh0)A%{H`g$~}@))F>gAweGryk++d`&_&69dH;l;m7t{cEh4+Z`p2x488(B zd;;6NWp}%o*nR6e*5x0>r+)BVM105!0wRf9cH{H#2k28YExyFwmXJRlO+=fLd+`B~ z1HMGdzB4!M##e(Pp(a@GoV4Z!QHF64W?6}34a{#?+KwwoyK#q1hm`n=3ceqlZ09g2 z{Lx!8;Knx}V6o6_CNh!M=)=+u1=X&lmzVJ+a{Rqzw=aS3Pef0f@!du$L?7Wupl(fM zJGR@nJ|pMg^_S1(;PtjL9lSnMIV3-Ly>2%IF71v>DHE{Q2eqWv)mzqE-do+<+1u4S z)H~5T**n!c-8<7e+dJ30*em*+ePRas2D}aZvHrGxF;F~U43rGG2FMDaVFl>jvF?TL zl1GA%v^_HS$owOVkBA;;PjQdYQ_@q`Q{GeE)6nDX3HG%0qD~^MryC_w<)PBdb9svUjJ}e-vcB@Z>b{0PZ(p#l ztuNiz(bv`2-8a-X**DcU-8b7e*Eip{*eCj({l)!8e@TB?e|dj(e?z~wKZshS`#bu( z`n&sw`X~FR`ltJ6`{(-S`xj9=C)clRpnRZupkcr}5FBV5=pGmvm>ifIm>!rNm>ZZM zSR4?8&cWhAW3XhfY_NQ=daz;8I~W{n8%z&&40a864-O4Z4o(eD56%wG4bBfP4vHb? zQ1Os4R5DaHR6bNa)G*XFG%@6QH2CPyqsDN_uxq$%xO}*J*gf1Z92|}fw+*LDZ zbEEU43!{spVys}Sc+41cjg^g+k5!K~jCsd`V{K#UvCgsXv7xbvvB|Niv6->ivH7uu zvBfcQ-g& Date: Tue, 22 Aug 2023 20:48:54 -0500 Subject: [PATCH 25/29] Missed updates on test files with previous PR. --- mpf/tests/test_HighScoreModeWithVars.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mpf/tests/test_HighScoreModeWithVars.py b/mpf/tests/test_HighScoreModeWithVars.py index e1c6c87cc..6fef94c13 100644 --- a/mpf/tests/test_HighScoreModeWithVars.py +++ b/mpf/tests/test_HighScoreModeWithVars.py @@ -56,7 +56,7 @@ def test_high_score_one_var(self): # verify the data is accurate - new_score_data = {'score': [], 'loops': [('NEW', 50, {'player.number': 1})], 'hits': []} + new_score_data = {'score': [], 'loops': [('NEW', 50, {'player_number': 1})], 'hits': []} self.assertEqual(new_score_data, self.machine.modes["high_score"].high_scores) @@ -92,7 +92,7 @@ def test_high_score_multiple_vars(self): # verify the data is accurate - new_score_data = {'score': [], 'loops': [], 'hits': [('NEW', 50, {'player.number': 1, 'machine.credits_string': + new_score_data = {'score': [], 'loops': [], 'hits': [('NEW', 50, {'player_number': 1, 'machine_credits_string': 'FREE PLAY'})]} self.assertEqual(new_score_data, From fac05a505a93e6666277cf5cbc0327f932e9e938 Mon Sep 17 00:00:00 2001 From: Anthony van Winkle Date: Mon, 28 Aug 2023 18:47:48 -0700 Subject: [PATCH 26/29] Bugfix settings machine vars not persisting on subsequent data writes --- mpf/core/machine_vars.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mpf/core/machine_vars.py b/mpf/core/machine_vars.py index c2cdf4a5f..230841ca5 100644 --- a/mpf/core/machine_vars.py +++ b/mpf/core/machine_vars.py @@ -45,7 +45,8 @@ def load_machine_vars(self, machine_var_data_manager: DataManager, current_time) continue - self.set_machine_var(name=name, value=settings['value']) + # Any value that was persisted before should be persisted again + self.set_machine_var(name=name, value=settings['value'], persist=True) self._load_initial_machine_vars() @@ -169,7 +170,7 @@ def configure_machine_var(self, name: str, persist: bool, expire_secs: int = Non self.machine_vars[name]['expire_secs'] = expire_secs self.machine_vars[name]['timeout'] = timeout - def set_machine_var(self, name: str, value: Any) -> None: + def set_machine_var(self, name: str, value: Any, persist=False) -> None: """Set the value of a machine variable. Args: @@ -178,7 +179,7 @@ def set_machine_var(self, name: str, value: Any) -> None: value: The value you're setting. This can be any Type. """ if name not in self.machine_vars: - self.configure_machine_var(name=name, persist=False) + self.configure_machine_var(name=name, persist=persist) prev_value = None change = True else: From 37ae79ed673bf39368e91a974382fcf7ac726a69 Mon Sep 17 00:00:00 2001 From: Anthony van Winkle Date: Wed, 30 Aug 2023 16:42:15 -0700 Subject: [PATCH 27/29] Fix tests from #1708 machine variable persistence --- mpf/tests/test_MachineVariables.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mpf/tests/test_MachineVariables.py b/mpf/tests/test_MachineVariables.py index c17a5bf08..200da0a27 100644 --- a/mpf/tests/test_MachineVariables.py +++ b/mpf/tests/test_MachineVariables.py @@ -70,10 +70,12 @@ def testVarLoadAndRemove(self): self.assertFalse(self.machine.variables.is_machine_var("expired_value")) self.assertTrue(self.machine.variables.is_machine_var("not_expired_value")) self.assertTrue(self.machine.variables.is_machine_var("player2_score")) - # should always persist - #self.assertTrue(self.machine.variables.machine_vars["player2_score"]["persist"]) + # previously-persisted variables should continue to persist + self.assertTrue(self.machine.variables.machine_vars["player2_score"]["persist"]) # random variable does not persist - self.assertFalse(self.machine.variables.machine_vars["another_score"]["persist"]) + self.machine.variables.set_machine_var("temporary_variable", 1000) + self.assertEqual(1000, self.machine.variables.get_machine_var("temporary_variable")) + self.assertFalse(self.machine.variables.machine_vars["temporary_variable"]["persist"]) # configured to persist self.assertTrue(self.machine.variables.machine_vars["test1"]["persist"]) self.assertTrue(self.machine.variables.machine_vars["test2"]["persist"]) @@ -101,6 +103,8 @@ def testVarLoadAndRemove(self): self.machine.variables.machine_var_data_manager._trigger_save.assert_called_with() self.assertEqual({ + 'another_score': {'value': 123, 'expire': None, 'expire_secs': None}, + "not_expired_value": {'value': 24, 'expire': None, 'expire_secs': None}, 'master_volume': {'value': 0.5, 'expire': None, 'expire_secs': None}, 'test1': {'value': 42, 'expire': None, 'expire_secs': None}, 'test2': {'value': '5', 'expire': None, 'expire_secs': None}, From f03d227c2c7737483a86949a478e06f7352b248b Mon Sep 17 00:00:00 2001 From: Avery Tummons Date: Wed, 30 Aug 2023 20:16:46 -0500 Subject: [PATCH 28/29] Removes pinproc files for 3.5 and 3.6 as they are no longer supported. Adds future proofing for 3.10 and 3.11. When MFP 0.57 rolls out we can remove the files for 3.7. In November, the project is ready to go and build to add support for 3.12. --- .../pinproc/windows/pinproc.cp310-win32.pyd | Bin 0 -> 84273 bytes .../windows/pinproc.cp310-win_amd64.pyd | Bin 0 -> 102717 bytes .../pinproc/windows/pinproc.cp311-win32.pyd | Bin 0 -> 84318 bytes .../windows/pinproc.cp311-win_amd64.pyd | Bin 0 -> 102773 bytes .../pinproc/windows/pinproc.cp35-win32.pyd | Bin 65536 -> 0 bytes .../pinproc/windows/pinproc.cp35-win_amd64.pyd | Bin 80896 -> 0 bytes .../pinproc/windows/pinproc.cp36-win32.pyd | Bin 65536 -> 0 bytes .../pinproc/windows/pinproc.cp36-win_amd64.pyd | Bin 80896 -> 0 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mpf/platforms/pinproc/windows/pinproc.cp310-win32.pyd create mode 100644 mpf/platforms/pinproc/windows/pinproc.cp310-win_amd64.pyd create mode 100644 mpf/platforms/pinproc/windows/pinproc.cp311-win32.pyd create mode 100644 mpf/platforms/pinproc/windows/pinproc.cp311-win_amd64.pyd delete mode 100644 mpf/platforms/pinproc/windows/pinproc.cp35-win32.pyd delete mode 100644 mpf/platforms/pinproc/windows/pinproc.cp35-win_amd64.pyd delete mode 100644 mpf/platforms/pinproc/windows/pinproc.cp36-win32.pyd delete mode 100644 mpf/platforms/pinproc/windows/pinproc.cp36-win_amd64.pyd diff --git a/mpf/platforms/pinproc/windows/pinproc.cp310-win32.pyd b/mpf/platforms/pinproc/windows/pinproc.cp310-win32.pyd new file mode 100644 index 0000000000000000000000000000000000000000..63f297d5ea917bf5c78fb267e8d5f791eb758b2f GIT binary patch literal 84273 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 literal 0 HcmV?d00001 diff --git a/mpf/platforms/pinproc/windows/pinproc.cp310-win_amd64.pyd b/mpf/platforms/pinproc/windows/pinproc.cp310-win_amd64.pyd new file mode 100644 index 0000000000000000000000000000000000000000..ccb9525d40e371e34bb8042b3f513276b903a711 GIT binary patch literal 102717 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

-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 literal 0 HcmV?d00001 diff --git a/mpf/platforms/pinproc/windows/pinproc.cp311-win_amd64.pyd b/mpf/platforms/pinproc/windows/pinproc.cp311-win_amd64.pyd new file mode 100644 index 0000000000000000000000000000000000000000..19b19c90b2dbee1f4312d0cfa65fe4a7d3e37f38 GIT binary patch literal 102773 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 literal 0 HcmV?d00001 diff --git a/mpf/platforms/pinproc/windows/pinproc.cp35-win32.pyd b/mpf/platforms/pinproc/windows/pinproc.cp35-win32.pyd deleted file mode 100644 index e8fd429d08d16ea9db9c8a6addc509889f092a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 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

PbN;Sp8Wr%F`9C6|>Q`#6i?IE33Hh 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 diff --git a/mpf/platforms/pinproc/windows/pinproc.cp35-win_amd64.pyd b/mpf/platforms/pinproc/windows/pinproc.cp35-win_amd64.pyd deleted file mode 100644 index d61ab246c6421a41f7379e3e052aab60b55165d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80896 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 diff --git a/mpf/platforms/pinproc/windows/pinproc.cp36-win32.pyd b/mpf/platforms/pinproc/windows/pinproc.cp36-win32.pyd deleted file mode 100644 index 08e3f5a0543b126a49d2523d3ee453703631e6fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 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

    ^kKwj_b2iRwbGM@i5#p2BPE3> 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

    D!$ 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

    Np%xnF|fQ3-TVu3#XNsP%&Y!_m{+n} z%(Hx6*fnnvg&dct4kfP&gcBQbx5K>3X`0=dHofjnahvCw^!dc>NA+Y%TWrSHYhh}N zRC&#AOMa%v2d}J7ZV&MyF#+0*TQJ5lz1ck-y{j7hg!vBBo86ZD43Ym9`V6(T_-xU+ zRfu20oM2kBTeg{Fn$|8x@nHJdH$q05tMYAjbNgcc&J+`%TU{f>l}u}PYyRrGm;l{H zpM94CVsfi6%MfOXDa`qz_9p1%K{y)W zFlM*R(<+$DC zn2ebRfXdsNAzT@8u|5NWFQ*fcWygFr=7s!#e&PrDVnO5WpDr#%wwjeCW?70v)>x)f z%1kr|#227H&leHQb=GfP~0?hpj zF!wJ2Uly!7YfSoY*7al)-Hmv}0H#l-1^&fTaas=Gc$x2cVl;^S-HQIN!=WC{I7yH8 zkPJ_A`MKzmQl7{V!?%%6rVtAqsxO$`I*g*VicVbccnGF~Y0d6rI&%D&0U4%16y6IN z<}8~y>)yhN8Dsgwxe;4!jx*aM+x{za#018*fzJrBhvPH5)5oa!D++3dCyWQzjGb_J_!k(}CWPqJKEF4r;@!}&|I#GI1cj5#38*5kAtc}b6l zWUN)$svhowzmA9Iv2?jm`;qL3vdo%>hWhB6$ba$g@aNxQxQ||nE*cT*sEcwQ@}|n7 z ziB(vuXg<-rfprPt^cd0k6(JslxtrrKyHomP`W!_0Ekm8ogA9JJlEJA?T`1#XlEqKh zMHc33``3l|EzEI_-|W_HdH$l*{!a0rSW0F=|DN~;+W23hKVSnuwo~+XaxeQPhBU%~ zHr;IwGi$z0%!e#GzZ$S4N6cR}SB|G$2wS`le~!Qu$nmtKb~fbLOKE8R^qVhZDM_{) z-i6K9l(9M6pI2N^{4%JWSRT)uS@;T5R8z2s3RbF-H&no;+MKDr)7xNvw#Z+VGnN&x z)@FJzCZzeFt}RPhxnzdOyEi+c`EHq=BWBmloG2K}i{#eYJUM8mvYwA-i_r°yK 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 From c6902d78a95c2d748ace6b9b149f0c347a1e376c Mon Sep 17 00:00:00 2001 From: Anthony van Winkle Date: Tue, 12 Sep 2023 09:09:05 -0700 Subject: [PATCH 29/29] Support machine_path arg in MC production builds --- mpf/commands/build.py | 9 ++++++--- mpf/core/config_loader.py | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mpf/commands/build.py b/mpf/commands/build.py index a04c27f98..110d9334c 100644 --- a/mpf/commands/build.py +++ b/mpf/commands/build.py @@ -54,13 +54,16 @@ def __init__(self, args, path): def production_bundle(self): """Create a production bundle.""" config_loader = YamlMultifileConfigLoader(self.machine_path, self.args.configfile, False, False) - mpf_config = config_loader.load_mpf_config() - if self.args.mc: - mc_config = config_loader.load_mc_config() + mpf_config = config_loader.load_mpf_config() if self.args.dest_path: mpf_config.set_machine_path(self.args.dest_path) + if self.args.mc: + mc_config = config_loader.load_mc_config() + if self.args.dest_path: + mc_config.set_machine_path(self.args.dest_path) + pickle.dump(mpf_config, open(ProductionConfigLoader.get_mpf_bundle_path(self.machine_path), "wb")) if self.args.mc: pickle.dump(mc_config, open(ProductionConfigLoader.get_mpf_mc_bundle_path(self.machine_path), "wb")) diff --git a/mpf/core/config_loader.py b/mpf/core/config_loader.py index e1a30df43..f40b3ee9c 100644 --- a/mpf/core/config_loader.py +++ b/mpf/core/config_loader.py @@ -95,6 +95,10 @@ def get_machine_path(self): """Return machine path.""" return self._machine_path + def set_machine_path(self, value): + """Set a new machine path.""" + self._machine_path = value + def get_config_spec(self): """Return config spec.""" return self._config_spec

    %PK!l<0-o~<9nCT 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