Skip to content

Arms should not block headshots #1096

@iamgreaser

Description

@iamgreaser

Vanilla 0.75 behaviour is to check intersections in this order, and stop the moment it hits one of these:

  • Player 0 Body
  • Player 0 Head
  • Player 0 Limbs (3 parts, all do the same damage)
  • Player 1 Body
  • Player 1 Head
  • Player 1 Limbs
  • Player 2 Body
  • Player 2 Head
  • ...
  • Player 31 Head
  • Player 31 Limbs

At the time of writing, both OpenSpades and BetterSpades follow the more logical approach of tracking which body part is hit first. Unfortunately, this also means that arms block headshots.

A potential solution is to build up a bit mask for body parts which have been hit for the closest-hit player (clearing the mask when we've encountered a closer player), and then pick the bit in the mask which has priority.

The alternative is to follow 0.75 exactly, which has the weird side-effect that you can aim a shot at Player 14's head but then somehow intersect with Player 9's leg in the distance, and... well, you hit Player 9's leg instead of Player 14's head. It's an acceptable solution, it's just also unintuitive and awkward.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions