def draw_effects(self, surf):
    """Draw the effects."""
    for effect in self._obs.observation.raw_data.effects:
      color = [
          colors.effects[effect.effect_id],
          colors.effects[effect.effect_id],
          colors.PLAYER_ABSOLUTE_PALETTE[effect.owner],
      ]
      name = self.get_unit_name(
          surf, features.Effects(effect.effect_id).name, effect.radius)
      for pos in effect.pos:
        p = point.Point.build(pos)
        # pygame alpha transparency doesn't work, so just draw thin circles.
        for r in range(1, int(effect.radius * 3)):
          surf.draw_circle(color[r % 3], p, r / 3, thickness=2)
        if name:
          surf.write_world(self._font_small, colors.white, p, name)