rj_gameplay.play.penalty_defense

Module Contents

Classes

State

Create a collection of name/value pairs.

PenaltyDefense

Coordinate full-team behaviors via Tactics. Assumes number of Roles matches number of robots on the field.

class rj_gameplay.play.penalty_defense.State(*args, **kwds)

Bases: enum.Enum

Create a collection of name/value pairs.

Example enumeration:

>>> class Color(Enum):
...     RED = 1
...     BLUE = 2
...     GREEN = 3

Access them by:

  • attribute access:

>>> Color.RED
<Color.RED: 1>
  • value lookup:

>>> Color(1)
<Color.RED: 1>
  • name lookup:

>>> Color['RED']
<Color.RED: 1>

Enumerations can be iterated over, and know how many members they have:

>>> len(Color)
3
>>> list(Color)
[<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]

Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.

INIT
ACTIVE
class rj_gameplay.play.penalty_defense.PenaltyDefense

Bases: stp.play.Play

Coordinate full-team behaviors via Tactics. Assumes number of Roles matches number of robots on the field. Ends when SituationAnalysis switches the Play, so no is_done() necessary. See tick() for more details on behavior.

tick(world_state: stp.rc.WorldState) List[rj_msgs.msg.RobotIntent]

Performs one “tick” of the specified play.

This should:
  1. Determine if role assignment is necessary.

  2. If so, perform role assignment with self.assign_roles().

  3. Tick Tactics to aggregate robot_intents with self.get_robot_intents().

Parameters:

world_state – Current state of the world.

Returns:

list of robot intents where index = robot_id