-
Notifications
You must be signed in to change notification settings - Fork 59
Penalty & Scoring System [AARD-1895]
#1160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Ex. If a red alliance robot scores into the blue alliance zone, that counts as negative points towards the robots score (because that gave points to the other team).
If a robot pushes a object into a scoring zone that counts as them scoring that object.
[1895][AARD-1895]
ryanzhangofficial
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks and feels great! Seems to be a great start for the full system.
Helps differentiate protected zones from scoring zones
Dhruv-0-Arora
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Conflicts. Is this blocked by the refactor?
The conflicts were primarily due to the Preference Saving Refactor (so that changes are applied instantly). I don't believe that this is blocked by the UI refactor if that is what you are referring to. |
|
@Dhruv-0-Arora can you rereview? This has been sitting for over a week with no changes |
rutmanz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From a rules perspective, there are a few more types than contact-required and contact not required. Some of them are only active in specific phases (auto, endgame), some require that the opponent (robot who is protected and will gain points from the foul) be in the zone (2025 G427, 2024 G422), some require that either robot be in the zone (2024 G423), and some require that the offending robot be in the opponent's zone (2024 G405).
I don't know if/how we want to support all of these cases and if it is in the scope of this PR to do but the current configuration is a little too rigid to support those
There are a lot of specific rules in FRC and its very challenging to account for all of them. The way I understood this PR was just to make the underling penalty system while also adding a couple penalties to demonstrate functionality. Personally I think that this can be easily expanded. For example, in the configuration panel you could add a multiple select dropdown where you select during what game phase the zone is active. Then in the zone you just check if the current game phase is one of the selected phases and only then count the input. I don't think there is any other way to account for all of these FRC edge case rules without a lot of if statements. I would add this functionality, but this PR is already over 1,000 lines of code changed and our current dropdown doesn't allow multi-select functionality. |
rutmanz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in that case I think this lgtm
BrandonPacewic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks really solid overall - I don’t foresee any issues with the approach taken here. There are a few small tweaks we might consider:
- Improving encapsulation by moving some of the physics logic out of MirabufSceneObject
- Representing endgame as a dedicated enum state for better clarity in match flow
Great work. I’m looking forward to seeing the next steps for this feature. 🎼
Only requested change was a merge conflict concern. Dismissing this review.
|
This feature will continue to be built upon by AARD-1893. |
Objectives
Track penalties, scoring contributions and ranking points. Implement per-robot penalty and score trackers. This system can be expanded upon later including some more advanced point tracking system so just do what seems reasonable for this particular task.
Description
This can also be done through the configure assets tab

The score for Luna is -15. This can happen either if the robot scores in the opposing alliances goal, or through penalties.
Testing Done
JIRA Issue
