Skip to content

Main

Entrypoint for the Controller programm

CrazyComet (Game)

Game class for the controller

Attributes:

Name Type Description
score int

Score of this player

on_end(self) async

Executed, when the game ends

Source code in src/main.py
async def on_end(self):
    self.rgb_leds.all_leds_blue()

on_exit(self, err=None) async

Executed, when the game loop is exited

Parameters:

Name Type Description Default
err Exception

Value of the exception when the game exited with none zero code

None
Source code in src/main.py
async def on_exit(self, err: Exception = None):
    self.rgb_leds.switch_off_leds()

    return await super().on_exit(err)

on_init(self) async

Initialize controls

Source code in src/main.py
async def on_init(self):
    """
        Initialize controls
    """
    self.rgb_leds = LEDControl()

    self.ready_control = {
        "key": KeyCode.BUT_1,
        "input": ReadyControl(seat=self.config["seat"], name="Ready Control", led_ctl=self.rgb_leds)}

    self.controls = {
        JoystickCode.LEFT_Y: VerticalTurretControl(
            seat=self.config["seat"],
            name="vertical_control",
            pin=13,
            config=self.config['CrazyComet']['turrets']['vertical']

        ),
        JoystickCode.LEFT_X: HorizontalTurretControl(
            seat=self.config["seat"],
            name="horizontal_control",
            pin=12,
            rgb_cb=self.rgb_leds.display_joystick_pos,
            config=self.config['CrazyComet']['turrets']['horizontal']
        ),
        KeyCode.R1: Blaster(
            seat=1,
            name="Blaster",
            score_cb=self.update_score,
            magazine_size=self.config['CrazyComet']['blaster']['magazine_size'],
            inverted_logic=self.config['CrazyComet']['blaster']['inverted_logic'],
            led_cb=self.rgb_leds.score_leds
        )
    }

on_pregame(self) async

Reset score

Source code in src/main.py
async def on_pregame(self):
    """
        Reset score
    """

    self.score = 0

update_score(self) async

Increase score by one and publish it with gameIO

Source code in src/main.py
async def update_score(self):
    """
        Increase score by one and publish it with gameIO
    """

    self.score += 1
    await self.game_io.score(score=self.score, seat=self.config["seat"])
Back to top