Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions lib/Enums.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ export namespace ReefscapeEnums {
}

export namespace RebuiltEnums {
export enum ClimbingAbilities {
export enum ClimbingCapabilities {
No = "No",
FirstLevel = "FirstLevel",
SecondLevel = "SecondLevel",
Expand All @@ -136,14 +136,6 @@ export namespace RebuiltEnums {
Second = "Second",
Third = "Third",
}

export enum AutoAbilities {
NoAuto = "No Auto",
MovePastStart = "Move Past Start",
ClimbLevelOne = "Climb Level One",
ScoreOneOrMoreFuel = "Score One Or More Fuel",
ScoreFuelAndClimb = "Score Fuel And Climb",
}
}

export namespace DecodeEnums {
Expand Down
8 changes: 4 additions & 4 deletions lib/Layout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,8 @@ export function keyToType(
ReefscapeEnums.Climbing,
ReefscapeEnums.DriveThroughDeepCage,
ReefscapeEnums.EndgameClimbStatus,
RebuiltEnums.AutoAbilities,
RebuiltEnums.ClimbingAbilities,
//RebuiltEnums.AutoAbilities,
RebuiltEnums.ClimbingCapabilities,
RebuiltEnums.DriveOverBump,
RebuiltEnums.DriveUnderTrench,
RebuiltEnums.LevelClimbed,
Expand All @@ -240,8 +240,8 @@ export function keyToType(
if (key == "DriveThroughDeepCage") return ReefscapeEnums.DriveThroughDeepCage;
if (key == "EndgameClimbStatus") return ReefscapeEnums.EndgameClimbStatus;

if (key == "AutoAbilities") return RebuiltEnums.AutoAbilities;
if (key == "ClimbingAbilities") return RebuiltEnums.ClimbingAbilities;
//if (key == "AutoAbilities") return RebuiltEnums.AutoAbilities;
if (key == "ClimbingCapabilities") return RebuiltEnums.ClimbingCapabilities;
if (key == "DriveOverBump") return RebuiltEnums.DriveOverBump;
if (key == "DiveUnderTrench") return RebuiltEnums.DriveUnderTrench;
if (key == "LevelClimbed") return RebuiltEnums.LevelClimbed;
Expand Down
141 changes: 100 additions & 41 deletions lib/games.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1898,6 +1898,10 @@ namespace Reefscape {

export namespace Rebuilt {
export class QuantitativeData extends QuantData {
AutoFuelPointsOne: number = 0;
AutoFuelPointsFive: number = 0;
AutoFuelPointsTen: number = 0;

FuelPointsOne: number = 0;
FuelPointsFive: number = 0;
FuelPointsTen: number = 0;
Expand All @@ -1908,25 +1912,23 @@ export namespace Rebuilt {
LevelClimbed: RebuiltEnums.LevelClimbed = RebuiltEnums.LevelClimbed.No;
}
export class PitData extends PitReportData {
GroundIntake: boolean = false;
CanDriveOverBump: boolean = false;
CanDriveUnderTrench: boolean = false;
CanDeClimb: boolean = false;
CanScoreFuel: boolean = false;
HopperVolume: number = 0;
AutoAbilities: RebuiltEnums.AutoAbilities =
RebuiltEnums.AutoAbilities.NoAuto;
ClimbingAbilities: RebuiltEnums.ClimbingAbilities =
RebuiltEnums.ClimbingAbilities.No;
RobotWeight: number = 0;
RobotWidth: number = 0;
RobotLength: number = 0;
AutoAbilities: string = "";
ClimbingCapabilities: RebuiltEnums.ClimbingCapabilities =
RebuiltEnums.ClimbingCapabilities.No;
}
const pitReportLayout: FormLayoutProps<PitData> = {
Capabilities: [
{ key: "GroundIntake", label: "Has Ground Intake?" },
{ key: "CanDriveOverBump", label: "Can Drive Over Bump?" },
{ key: "CanDriveUnderTrench", label: "Can Drive Under Trench?" },
{ key: "CanDeClimb", label: "Can De-Climb?" },
{ key: "CanScoreFuel", label: "Can Score Fuel?" },
{ key: "ClimbingAbilites", label: "Climbing?" },
{ key: "ClimbingCapabilities", label: "Climbing?" },
{ key: "HopperVolume", label: "Hopper Volume?" },
],
Auto: [{ key: "AutoAbilities", label: "Auto Capabilities?" }],
Expand All @@ -1937,20 +1939,20 @@ export namespace Rebuilt {
[
[
{
key: "FuelPointsOne",
label: "One point",
key: "AutoFuelPointsOne",
label: "Auto One point",
},
],
[
{
key: "FuelPointsFive",
label: "Five points",
key: "AutoFuelPointsFive",
label: "Auto Five points",
},
],
[
{
key: "FuelPointsTen",
label: "Ten points",
key: "AutoFuelPointsTen",
label: "Auto Ten points",
},
],
],
Expand All @@ -1960,29 +1962,60 @@ export namespace Rebuilt {
[
{
key: "FuelPointsOne",
label: "One point",
label: "Teleop One point",
},
],
[
{
key: "FuelPointsFive",
label: "Five points",
label: "Teleop Five points",
},
],
[
{
key: "FuelPointsTen",
label: "Ten points",
label: "TeleopTen points",
},
],
],
],
"Post Match": ["LevelClimbed", "Defense"],
"Post Match": ["LevelClimbed", "EngameDefenseStatus"],
};

const statsLayout: StatsLayout<PitData, QuantitativeData> = {
sections: {
Auto: [],
Auto: [
{
label: "Total Auto Fuel Points Scored By Alliance",
get(pitData, quantitativeReports) {
return (
NumericalTotal("AutoFuelPointsOne", quantitativeReports!) +
NumericalTotal("AutoFuelPointsFive", quantitativeReports!) * 5 +
NumericalTotal("AutoFuelPointsTen", quantitativeReports!) * 10
);
},
},
{
label: "< Min Auto Fuel Points Scored By Alliance",
get(pitData, quantitativeReports) {
return (
GetMinimum(quantitativeReports!, "AutoFuelPointsOne") +
GetMinimum(quantitativeReports!, "AutoFuelPointsFive") * 5 +
GetMinimum(quantitativeReports!, "AutoFuelPointsTen") * 10
);
},
},
{
label: "< Max Auto Fuel Points Scored By Alliance",
get(pitData, quantitativeReports) {
return (
GetMaximum(quantitativeReports!, "AutoFuelPointsOne") +
GetMaximum(quantitativeReports!, "AutoFuelPointsFive") * 5 +
GetMaximum(quantitativeReports!, "AutoFuelPointsTen") * 10
);
},
},
],
Teleop: [
{
label: "Total Fuel Points Scored By Alliance",
Expand Down Expand Up @@ -2025,21 +2058,53 @@ export namespace Rebuilt {
};

const pitStatsLayout: PitStatsLayout<PitData, QuantitativeData> = {
overallSlideStats: [],
overallSlideStats: [
{
label: "Estamate Hopper Volume",
key: "HopperVolume",
},
{
label: "RobotWeight",
key: "RobotWeight",
},
{
label: "Robot Width",
key: "RobotWidth",
},
{
label: "Robot Length",
key: "RobotLength",
},
],
individualSlideStats: [
{
label: "Average Points",
label: "Average Auto Points",
get: (
pitReport: Pitreport<PitData> | undefined,
quantitativeReports: Report<QuantitativeData>[] | undefined,
) => {
if (!quantitativeReports) return 0;

const TotalAllianceFuelPoints =
const TotalAutoAllianceFuelPoints =
NumericalTotal("AutoFuelPointsOne", quantitativeReports) +
NumericalTotal("AutoFuelPointsFive", quantitativeReports) * 5 +
NumericalTotal("AutoFuelPointsTen", quantitativeReports) * 10;
return TotalAutoAllianceFuelPoints / quantitativeReports.length;
},
},
{
label: "Average Teleop Points",
get: (
pitReport: Pitreport<PitData> | undefined,
quantitativeReports: Report<QuantitativeData>[] | undefined,
) => {
if (!quantitativeReports) return 0;

const TotalTeleopAllianceFuelPoints =
NumericalTotal("FuelPointsOne", quantitativeReports) +
NumericalTotal("FuelPointsFive", quantitativeReports) * 5 +
NumericalTotal("FuelPointsTen", quantitativeReports) * 10;
return TotalAllianceFuelPoints / quantitativeReports.length;
return TotalTeleopAllianceFuelPoints / quantitativeReports.length;
},
},
{
Expand All @@ -2056,12 +2121,10 @@ export namespace Rebuilt {
},
],
robotCapabilities: [
{ key: "GroundIntake", label: "Has Ground Intake?" },
{ key: "CanDriveOverBump", label: "Can Drive Over Bump?" },
{ key: "CanDriveUnderTrench", label: "Can Drive Under Trench?" },
{ key: "CanDeClimb", label: "Can De-Climb?" },
{ key: "CanScoreFuel", label: "Can Score Fuel?" },
{ key: "ClimbingAbilities", label: "Climbing?" },
{ key: "ClimbingCapabilities", label: "Climbing?" },
],
graphStat: {
label: "Average Fuel Scored In Hopper",
Expand All @@ -2076,30 +2139,26 @@ export namespace Rebuilt {
) {
const badges: Badge[] = getBaseBadges(pitReport, quantitativeReports);

if (pitReport?.data?.GroundIntake)
badges.push({ text: "Can Use Ground Intake", color: "primary" });
if (pitReport?.data?.CanDriveOverBump)
badges.push({ text: "Can Drive Over Bump", color: "accent" });
if (pitReport?.data?.CanDriveUnderTrench)
badges.push({ text: "Can Drive Under Trench", color: "accent" });
if (pitReport?.data?.CanDeClimb)
badges.push({ text: "Can Declimb", color: "accent" });
if (!pitReport?.data?.CanScoreFuel)
badges.push({ text: "Can't Score Fuel", color: "warning" });

if (
pitReport?.data?.ClimbingAbilities ===
RebuiltEnums.ClimbingAbilities.FirstLevel
pitReport?.data?.ClimbingCapabilities ===
RebuiltEnums.ClimbingCapabilities.FirstLevel
)
badges.push({ text: "Can Climb First Level", color: "accent" });
else if (
pitReport?.data?.ClimbingAbilities ===
RebuiltEnums.ClimbingAbilities.SecondLevel
pitReport?.data?.ClimbingCapabilities ===
RebuiltEnums.ClimbingCapabilities.SecondLevel
)
badges.push({ text: "Can Climb Second Level", color: "accent" });
else if (
pitReport?.data?.ClimbingAbilities ===
RebuiltEnums.ClimbingAbilities.ThirdLevel
pitReport?.data?.ClimbingCapabilities ===
RebuiltEnums.ClimbingCapabilities.ThirdLevel
)
badges.push({ text: "Can Climb Third Level", color: "accent" });

Expand All @@ -2126,9 +2185,9 @@ export namespace Rebuilt {
break;
}
totalPoints +=
Number(report.FuelPointsOne) +
Number(report.FuelPointsFive) * 5 +
Number(report.FuelPointsTen) * 10;
Number(report.FuelPointsOne + report.AutoFuelPointsOne) +
Number(report.FuelPointsFive + report.AutoFuelPointsOne) * 5 +
Number(report.FuelPointsTen + report.AutoFuelPointsOne) * 10;
}
return totalPoints / Math.max(reports.length, 1);
}
Expand Down Expand Up @@ -2195,7 +2254,7 @@ export namespace Decode {

const quantitativeReportLayout: FormLayoutProps<QuantitativeData> = {
Auto: [
{ key: "AutoMovedPastStart", label: "Moved Past Starting line" },
{ key: "AutoMovedPastStartingLine", label: "Moved Past Starting line" },
[
[
{
Expand Down
Loading
Loading