From 53020be0b6f6bf487365d16ba91a467a2d419159 Mon Sep 17 00:00:00 2001 From: Cutieguwu Date: Sun, 6 Apr 2025 17:03:30 -0400 Subject: [PATCH 1/6] Update README.adoc --- README.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/README.adoc b/README.adoc index 660f24a..bc93b6d 100644 --- a/README.adoc +++ b/README.adoc @@ -12,6 +12,7 @@ I figured, that since I already had to digitize every note, that I was required == Goals +* [ ] Auto Ranking system? * [ ] Data Visualizer? * [ ] Dynamic Web Page? ** Server Side Events? From e4db3e3a2088a38dd2652a4fe30c51738f316c2a Mon Sep 17 00:00:00 2001 From: Cutieguwu Date: Tue, 22 Apr 2025 15:38:03 -0400 Subject: [PATCH 2/6] Update gamelog to v0.7.0 --- gamelog.ron | 2011 +++++++++++++++++++---------------------- gamelog/Cargo.lock | 2 +- gamelog/Cargo.toml | 2 +- gamelog/src/event.rs | 31 +- gamelog/src/game.rs | 383 ++++++-- gamelog/src/lib.rs | 2 +- gamelog/src/period.rs | 278 +----- miller/Cargo.lock | 2 +- 8 files changed, 1300 insertions(+), 1411 deletions(-) diff --git a/gamelog.ron b/gamelog.ron index d3f5687..1bcc2af 100644 --- a/gamelog.ron +++ b/gamelog.ron @@ -4,1106 +4,1003 @@ [ Game( - version: "0.6.0", + version: "0.7.0", flags: [Interval(2), IgnoreScore], - periods: [ - Period( - start: First, - end: Second, - events: [ - Kickoff(ArizonaState), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(2), - ), - Play( - action: Unknown, // Throw Left - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Throw Right - down: Second, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // PA Throw Right - down: Second, - terrain: Yards(2), - ), - Play( - action: Unknown, // PA Run Right - down: Third, - terrain: Yards(7), - ), - Play( - action: HalfbackSweep, - down: Fourth, - terrain: Yards(11), - ), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - Turnover(TexasAnM), - Play( - action: Unknown, // PA Throw Right - down: Second, - terrain: Yards(11), - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(9), - ), - Play( - action: Unknown, // Throw Centre - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Throw Run Right - down: Second, - terrain: Yards(3), - ), - Play( - action: Unknown, // Throw that failed miserably. - down: First, - terrain: Yards(10), - ), - ] + events: [ + Quarter(First), + Kickoff(ArizonaState), + Play( + action: Unknown, + down: First, + terrain: Yards(10), ), - Period( - start: Third, - end: None, - events: [ - Kickoff(TexasAnM), - Play( - action: Unknown, // PA Comebacks or Curls? Original note: Spike Centre - down: Second, - terrain: Yards(6), - ), - Play( - action: Unknown, // Halfback? Original note: None - down: Third, - terrain: Yards(13), - ), - Play( - action: Unknown, // HB Slip Screen? Original note: Throw Right - down: First, - terrain: Yards(10), - ), - Turnover(ArizonaState), - Play( - action: SlotOut, // Slot Out or PA Comebacks. Original note: ShotgunDoubleFlex Throw - down: Second, - terrain: Yards(10), - ), - Play( - action: PlayActionComebacks, // Curls or PA Comebacks. Original note: Spike Centre - down: First, - terrain: Yards(10), - ), - Turnover(TexasAnM), - Play( - action: PlayActionComebacks, // Original note: Dupe Spike Centre - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Failed Throw - down: Second, - terrain: Yards(10), - ), - Play( - action: PowerZero, // Power 0 or Crack Student Body RT. Original note: Transfer Rush Right - down: Third, - terrain: Yards(15), - ), - ] + Play( + action: Unknown, + down: Second, + terrain: Yards(2), ), - Period( - start: Fourth, - end: None, - events: [ - Play( - action: PlayActionComebacks, // Original note: Dupe Spike Centre - down: Fourth, - terrain: Yards(17), - ), - Play( - action: Unknown, // Punt - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Throw Left - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Throw Centre - down: First, - terrain: Yards(10), - ), - Play( - action: HalfbackSweep, // Original note: Transfer Run Left - down: Second, - terrain: Yards(12), - ), - Play( - action: Unknown, // Original note: Throw Centre - down: First, - terrain: Yards(10), - ), - Play( - action: PowerZero, // Original note: Transfer Run Right - down: Second, - terrain: Yards(8), - ), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - Kickoff(ArizonaState), - ] + Play( + action: Unknown, // Throw Left + down: First, + terrain: Yards(10), ), + Play( + action: Unknown, // Throw Right + down: Second, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // PA Throw Right + down: Second, + terrain: Yards(2), + ), + Play( + action: Unknown, // PA Run Right + down: Third, + terrain: Yards(7), + ), + Quarter(Second), + Play( + action: HalfbackSweep, + down: Fourth, + terrain: Yards(11), + ), + Play( + action: Unknown, + down: First, + terrain: Yards(10), + ), + Turnover(TexasAnM), + Play( + action: Unknown, // PA Throw Right + down: Second, + terrain: Yards(11), + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(9), + ), + Play( + action: Unknown, // Throw Centre + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Throw Run Right + down: Second, + terrain: Yards(3), + ), + Play( + action: Unknown, // Throw that failed miserably. + down: First, + terrain: Yards(10), + ), + Quarter(Third), + Kickoff(TexasAnM), + Play( + action: Unknown, // PA Comebacks or Curls? Original note: Spike Centre + down: Second, + terrain: Yards(6), + ), + Play( + action: Unknown, // Halfback? Original note: None + down: Third, + terrain: Yards(13), + ), + Play( + action: Unknown, // HB Slip Screen? Original note: Throw Right + down: First, + terrain: Yards(10), + ), + Turnover(ArizonaState), + Play( + action: SlotOut, // Slot Out or PA Comebacks. Original note: ShotgunDoubleFlex Throw + down: Second, + terrain: Yards(10), + ), + Play( + action: PlayActionComebacks, // Curls or PA Comebacks. Original note: Spike Centre + down: First, + terrain: Yards(10), + ), + Turnover(TexasAnM), + Play( + action: PlayActionComebacks, // Original note: Dupe Spike Centre + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Failed Throw + down: Second, + terrain: Yards(10), + ), + Play( + action: PowerZero, // Power 0 or Crack Student Body RT. Original note: Transfer Rush Right + down: Third, + terrain: Yards(15), + ), + Quarter(Fourth), + Play( + action: PlayActionComebacks, // Original note: Dupe Spike Centre + down: Fourth, + terrain: Yards(17), + ), + Play( + action: Unknown, // Punt + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Throw Left + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Throw Centre + down: First, + terrain: Yards(10), + ), + Play( + action: HalfbackSweep, // Original note: Transfer Run Left + down: Second, + terrain: Yards(12), + ), + Play( + action: Unknown, // Original note: Throw Centre + down: First, + terrain: Yards(10), + ), + Play( + action: PowerZero, // Original note: Transfer Run Right + down: Second, + terrain: Yards(8), + ), + Play( + action: Unknown, + down: First, + terrain: Yards(10), + ), + Kickoff(ArizonaState), ] ), Game( - version: "0.6.0", + version: "0.7.0", flags: [Interval(2), IgnoreScore], - periods: [ - Period( - start: First, - end: None, - events: [ - Kickoff(Syracuse), - Play( - action: Unknown, - down: Second, - terrain: Yards(3), - ), - Play( - action: Unknown, // Original note: Spike Centre - down: Third, - terrain: Yards(3), - ), - Play( - action: Curls, - down: Fourth, - terrain: Yards(3), - ), - Play( - action: Mesh, - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(15), - ), - Play( - action: Unknown, // Original note: PA Throw Left - down: First, - terrain: Yards(10), - ), - ] + events: [ + Quarter(First), + Kickoff(Syracuse), + Play( + action: Unknown, + down: Second, + terrain: Yards(3), ), - Period( - start: Second, - end: None, - events: [ - Play( - action: Unknown, // Original note: PA Throw Centre - down: Second, - terrain: Yards(10), - ), - Play( - action: HalfbackSlam, // Original note: Transfer Rush Centre/Left - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Shotgun Throw Right - down: Second, - terrain: Yards(8), - ), - Play( - action: PlayActionPowerZero, // Original note: PA Rush Right - down: Third, - terrain: Yards(1), - ), - Play( - action: Unknown, // PowerZero or CSB RT? Original note: "HB? Rush Centre/Right" - down: Fourth, - terrain: Yards(6), - ), - Play( - action: Unknown, // HalfbackSlam? Original note: PA Rush Centre - down: None, - terrain: None, - ), - Turnover(Colorado), - Play( - action: PlayActionComebacks, - down: First, - terrain: Yards(10), - ), - Play( - action: HalfbackSlam, // Original note: "Transfer HB? Rush Centre" - down: Second, - terrain: Yards(9), - ), - Play( - action: Unknown, // Original note: Failed Throw - down: Third, - terrain: Yards(17), - ), - Play( - action: Unknown, // Original note: Same Failed Throw - down: Fourth, - terrain: Unknown, - ), - ] + Play( + action: Unknown, // Original note: Spike Centre + down: Third, + terrain: Yards(3), ), - Period( - start: Third, - end: None, - events: [ - Kickoff(Colorado), - Play( - action: Unknown, // Original note: Throw Right - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: ShotgunDoubleFlex Throw Right - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Pass Run Centre - down: First, - terrain: Yards(10), - ), - Play( - action: PowerZero, - down: Second, - terrain: Yards(6), - ), - ] + Play( + action: Curls, + down: Fourth, + terrain: Yards(3), ), - Period( - start: Fourth, - end: None, - events: [ - Play( - action: CrackStudentBodyRightTackle, - down: Third, - terrain: Yards(11), - ), - Play( - action: Unknown, // Original note: Spike Centre - down: Fourth, - terrain: Yards(3), - ), - Kickoff(Syracuse), - Play( - action: Unknown, // Original note: PA Throw Centre - down: First, - terrain: Yards(10), - ), - Play( - action: SpeedOption, - down: Second, - terrain: Yards(3), - ), - ] + Play( + action: Mesh, + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(15), + ), + Play( + action: Unknown, // Original note: PA Throw Left + down: First, + terrain: Yards(10), + ), + Quarter(Second), + Play( + action: Unknown, // Original note: PA Throw Centre + down: Second, + terrain: Yards(10), + ), + Play( + action: HalfbackSlam, // Original note: Transfer Rush Centre/Left + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Shotgun Throw Right + down: Second, + terrain: Yards(8), + ), + Play( + action: PlayActionPowerZero, // Original note: PA Rush Right + down: Third, + terrain: Yards(1), + ), + Play( + action: Unknown, // PowerZero or CSB RT? Original note: "HB? Rush Centre/Right" + down: Fourth, + terrain: Yards(6), + ), + Play( + action: Unknown, // HalfbackSlam? Original note: PA Rush Centre + down: None, + terrain: None, + ), + Turnover(Colorado), + Play( + action: PlayActionComebacks, + down: First, + terrain: Yards(10), + ), + Play( + action: HalfbackSlam, // Original note: "Transfer HB? Rush Centre" + down: Second, + terrain: Yards(9), + ), + Play( + action: Unknown, // Original note: Failed Throw + down: Third, + terrain: Yards(17), + ), + Play( + action: Unknown, // Original note: Same Failed Throw + down: Fourth, + terrain: Unknown, + ), + Quarter(Third), + Kickoff(Colorado), + Play( + action: Unknown, // Original note: Throw Right + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: ShotgunDoubleFlex Throw Right + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Pass Run Centre + down: First, + terrain: Yards(10), + ), + Play( + action: PowerZero, + down: Second, + terrain: Yards(6), + ), + Quarter(Fourth), + Play( + action: CrackStudentBodyRightTackle, + down: Third, + terrain: Yards(11), + ), + Play( + action: Unknown, // Original note: Spike Centre + down: Fourth, + terrain: Yards(3), + ), + Kickoff(Syracuse), + Play( + action: Unknown, // Original note: PA Throw Centre + down: First, + terrain: Yards(10), + ), + Play( + action: SpeedOption, + down: Second, + terrain: Yards(3), ), ] ), Game( - version: "0.6.0", + version: "0.7.0", flags: [Interval(2)], - periods: [ - Period( - start: First, - end: None, - events: [ - Kickoff(Nebraska), - Play( - action: Curls, - down: First, - terrain: Yards(10) - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(7), - ), - Play( - action: Curls, - down: Third, - terrain: Yards(9), - ), - Play( - action: CrackStudentBodyRightTackle, - down: Fourth, - terrain: Yards(9), - ), - Play( - action: FleaFlicker, - down: None, - terrain: None, - ), - Turnover(SouthCarolina), - Play( - action: Unknown, // Original note: Throw Right Dash - down: First, - terrain: Yards(10), - ), - ] + events: [ + Quarter(First), + Kickoff(Nebraska), + Play( + action: Curls, + down: First, + terrain: Yards(10) ), - Period( - start: Second, - end: None, - events: [ - Play( - action: Unknown, // Original note: Throw Centre - down: First, - terrain: GoalLine, - ), - Score(Touchdown), - Score(PatFail), - Kickoff(Nebraska), - Play( - action: StrongFlood, - down: First, - terrain: Yards(10), - ), - Play( - action: HalfbackSweep, - down: Second, - terrain: Yards(15), - ), - Play( - action: SlantBubble, - down: Third, - terrain: Yards(4), - ), - Play( - action: Unknown, // Original note: Halfback Slant Dummy - down: Fourth, - terrain: Yards(6), - ), - Play( - action: SlantBubble, - down: None, - terrain: None, - ), - Turnover(SouthCarolina), - Play( - action: Unknown, - down: First, - terrain: Yards(10) - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(10) - ), - ] + Play( + action: Unknown, + down: Second, + terrain: Yards(7), ), - Period( - start: Third, - end: None, - events: [ - Kickoff(SouthCarolina), - Play( - action: Unknown, - down: Second, - terrain: Yards(18), - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(14), - ), - Play( - action: Unknown, // Original note: Spike Centre - down: Fourth, - terrain: Yards(16), - ), - Turnover(Nebraska), - Play( - action: Unknown, // Original note: Fake Field Goal 44yrds - down: None, - terrain: None, - ), - Score(FieldGoal), - Kickoff(SouthCarolina), - Play( - action: Unknown, - down: Second, - terrain: Yards(3), - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(3), - ), - ] + Play( + action: Curls, + down: Third, + terrain: Yards(9), ), - Period( - start: Fourth, - end: None, - events: [ - Play( - action: Unknown, // Original note: Throw Centre - down: Fourth, - terrain: Yards(3), - ), - Play( - action: Unknown, // Original note: Throw, Run Left - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Throw Left - down: Second, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(5), - ), - Score(Touchdown), - Score(PatFail), - Kickoff(Nebraska), - Play( - action: PowerZero, - down: First, - terrain: Yards(10), - ), - Play( - action: StrongFlood, - down: First, - terrain: Yards(10), - ), - Play( - action: PlayActionComebacks, - down: Second, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Punt - down: First, - terrain: Yards(10), - ), - Turnover(SouthCarolina), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Fourth, - terrain: Yards(6), - ), - Turnover(Nebraska), - // Field Goal 41 yrds - Score(FieldGoal), - Kickoff(SouthCarolina), - Play( - action: Unknown, - down: Second, - terrain: Yards(18), - ) - ] + Play( + action: CrackStudentBodyRightTackle, + down: Fourth, + terrain: Yards(9), + ), + Play( + action: FleaFlicker, + down: None, + terrain: None, + ), + Turnover(SouthCarolina), + Play( + action: Unknown, // Original note: Throw Right Dash + down: First, + terrain: Yards(10), + ), + Quarter(Second), + Play( + action: Unknown, // Original note: Throw Centre + down: First, + terrain: GoalLine, + ), + Score(Touchdown), + Score(PatFail), + Kickoff(Nebraska), + Play( + action: StrongFlood, + down: First, + terrain: Yards(10), + ), + Play( + action: HalfbackSweep, + down: Second, + terrain: Yards(15), + ), + Play( + action: SlantBubble, + down: Third, + terrain: Yards(4), + ), + Play( + action: Unknown, // Original note: Halfback Slant Dummy + down: Fourth, + terrain: Yards(6), + ), + Play( + action: SlantBubble, + down: None, + terrain: None, + ), + Turnover(SouthCarolina), + Play( + action: Unknown, + down: First, + terrain: Yards(10) + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(10) + ), + Quarter(Third), + Kickoff(SouthCarolina), + Play( + action: Unknown, + down: Second, + terrain: Yards(18), + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(14), + ), + Play( + action: Unknown, // Original note: Spike Centre + down: Fourth, + terrain: Yards(16), + ), + Turnover(Nebraska), + Play( + action: Unknown, // Original note: Fake Field Goal 44yrds + down: None, + terrain: None, + ), + Score(FieldGoal), + Kickoff(SouthCarolina), + Play( + action: Unknown, + down: Second, + terrain: Yards(3), + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(3), + ), + Quarter(Fourth), + Play( + action: Unknown, // Original note: Throw Centre + down: Fourth, + terrain: Yards(3), + ), + Play( + action: Unknown, // Original note: Throw, Run Left + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Throw Left + down: Second, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(5), + ), + Score(Touchdown), + Score(PatFail), + Kickoff(Nebraska), + Play( + action: PowerZero, + down: First, + terrain: Yards(10), + ), + Play( + action: StrongFlood, + down: First, + terrain: Yards(10), + ), + Play( + action: PlayActionComebacks, + down: Second, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Punt + down: First, + terrain: Yards(10), + ), + Turnover(SouthCarolina), + Play( + action: Unknown, + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Fourth, + terrain: Yards(6), + ), + Turnover(Nebraska), + // Field Goal 41 yrds + Score(FieldGoal), + Kickoff(SouthCarolina), + Play( + action: Unknown, + down: Second, + terrain: Yards(18), ), ] ), Game( - version: "0.6.0", + version: "0.7.0", flags: [Interval(2)], - periods: [ - Period( - start: First, - end: None, - events: [ - Kickoff(Colorado), - Play( - action: Unknown, - down: Second, - terrain: Yards(3), - ), - Play( - action: Unknown, // Original note: Pass, Dash Centre - down: Third, - terrain: Yards(3), - ), - Play( - action: Unknown, // Original note: Throw, Dash Right - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Dash Centre - down: Second, - terrain: Yards(12), - ), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - ] + events: [ + Quarter(First), + Kickoff(Colorado), + Play( + action: Unknown, + down: Second, + terrain: Yards(3), ), - Period( - start: Second, - end: None, - events: [ - Play( - action: Unknown, // Original note: Pass Back, Dash - down: Second, - terrain: Yards(15), - ), - Play( // Golden Play - action: Unknown, // Original note: Throw, Dash Right - down: Third, - terrain: Yards(2), - ), - Play( - action: Unknown, // Original note: Same as last. - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Pass Back, Dash Right - down: Second, - terrain: Yards(7), - ), - Play( - action: Unknown, // Original note: Throw Right; Went Out - down: Third, - terrain: Yards(7), - ), - Play( - action: Unknown, // HB? Original note: Walk Back Throw Centre, - down: First, - terrain: GoalLine, - ), - Score(Touchdown), - Score(PatSafety), - Kickoff(Iowa), - Penalty(Yards(15)), - Play( - action: Unknown, // Original note: PA Throw Right and Dash - down: Second, - terrain: Yards(6), - ), - Play( - action: Unknown, // Original note: Throw Right - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(1), - ), - Play( - action: Unknown, // Original note: Spike Left - down: Third, - terrain: Yards(1), - ), - Play( - action: Unknown, // Original note: PA Throw Right and Dash - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Throw Right - down: First, - terrain: GoalLine, - ), - Score(FieldGoal), - ] + Play( + action: Unknown, // Original note: Pass, Dash Centre + down: Third, + terrain: Yards(3), ), - Period( - start: Third, - end: None, - events: [ - Kickoff(Iowa), - Play( - action: Unknown, // HB? Original note: Run Back, Throw Centre, Run Centre - down: Second, - terrain: Yards(4), - ), - Play( - action: Unknown, // PA? Original note: Dupe, Throw Right - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Orignal note: Run Left - down: Second, - terrain: Yards(13), - ), - Play( - action: Unknown, // PA? Original note: Dupe, Throw Centre, Run Centre - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, // Orignal note: Throw Right - down: Second, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Throw Left - down: Third, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Dupe, Throw Centre, Run Centre - down: First, - terrain: Yards(10), - ), - ] + Play( + action: Unknown, // Original note: Throw, Dash Right + down: First, + terrain: Yards(10), ), - Period( - start: Fourth, - end: None, - events: [ - Play( - action: Unknown, // Original note: Throw Left, Run Left - down: Second, - terrain: Yards(8), - ), - Play( - action: Unknown, // Original note: Dupe, Throw Centre, Run Centre - down: Third, - terrain: Yards(4), - ), - // Touchdown - Score(Touchdown), - Score(PatSafety), - Kickoff(Colorado), - Play( - action: Unknown, // Original note: Dupe, Throw Left - down: Second, - terrain: Yards(10), - ), - Play( - action: Unknown, // Original note: Throw Centre, Run Centre - down: Third, - terrain: Yards(1), - ), - Play( - action: Unknown, // Original note: Run Left - down: Fourth, - terrain: Yards(4) - ), - Play( - action: Unknown, // Original note: Dupe, Run Right, - down: None, - terrain: None, - ), - Turnover(Iowa), - Penalty(Yards(15)), - Play( - action: Unknown, // Original note: Run Left - down: Second, - terrain: Yards(11), - ), - Play( - action: Unknown, // Original note: Pass Back, Run Left - down: Third, - terrain: Yards(15), - ), - //Field Goal - Score(FieldGoal) - ] - ) + Play( + action: Unknown, // Original note: Dash Centre + down: Second, + terrain: Yards(12), + ), + Play( + action: Unknown, + down: First, + terrain: Yards(10), + ), + Quarter(Second), + Play( + action: Unknown, // Original note: Pass Back, Dash + down: Second, + terrain: Yards(15), + ), + Play( // Golden Play + action: Unknown, // Original note: Throw, Dash Right + down: Third, + terrain: Yards(2), + ), + Play( + action: Unknown, // Original note: Same as last. + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Pass Back, Dash Right + down: Second, + terrain: Yards(7), + ), + Play( + action: Unknown, // Original note: Throw Right; Went Out + down: Third, + terrain: Yards(7), + ), + Play( + action: Unknown, // HB? Original note: Walk Back Throw Centre, + down: First, + terrain: GoalLine, + ), + Score(Touchdown), + Score(PatSafety), + Kickoff(Iowa), + Penalty(Yards(15)), + Play( + action: Unknown, // Original note: PA Throw Right and Dash + down: Second, + terrain: Yards(6), + ), + Play( + action: Unknown, // Original note: Throw Right + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(1), + ), + Play( + action: Unknown, // Original note: Spike Left + down: Third, + terrain: Yards(1), + ), + Play( + action: Unknown, // Original note: PA Throw Right and Dash + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Throw Right + down: First, + terrain: GoalLine, + ), + Score(FieldGoal), + Quarter(Third), + Kickoff(Iowa), + Play( + action: Unknown, // HB? Original note: Run Back, Throw Centre, Run Centre + down: Second, + terrain: Yards(4), + ), + Play( + action: Unknown, // PA? Original note: Dupe, Throw Right + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Orignal note: Run Left + down: Second, + terrain: Yards(13), + ), + Play( + action: Unknown, // PA? Original note: Dupe, Throw Centre, Run Centre + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, // Orignal note: Throw Right + down: Second, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Throw Left + down: Third, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Dupe, Throw Centre, Run Centre + down: First, + terrain: Yards(10), + ), + Quarter(Fourth), + Play( + action: Unknown, // Original note: Throw Left, Run Left + down: Second, + terrain: Yards(8), + ), + Play( + action: Unknown, // Original note: Dupe, Throw Centre, Run Centre + down: Third, + terrain: Yards(4), + ), + // Touchdown + Score(Touchdown), + Score(PatSafety), + Kickoff(Colorado), + Play( + action: Unknown, // Original note: Dupe, Throw Left + down: Second, + terrain: Yards(10), + ), + Play( + action: Unknown, // Original note: Throw Centre, Run Centre + down: Third, + terrain: Yards(1), + ), + Play( + action: Unknown, // Original note: Run Left + down: Fourth, + terrain: Yards(4) + ), + Play( + action: Unknown, // Original note: Dupe, Run Right, + down: None, + terrain: None, + ), + Turnover(Iowa), + Penalty(Yards(15)), + Play( + action: Unknown, // Original note: Run Left + down: Second, + terrain: Yards(11), + ), + Play( + action: Unknown, // Original note: Pass Back, Run Left + down: Third, + terrain: Yards(15), + ), + Score(FieldGoal) ] ), Game( - version: "0.6.0", + version: "0.7.0", flags: [Interval(2)], - periods: [ - Period( - start: First, - end: None, - events: [ - Kickoff(Nebraska), - Play( - action: CrackStudentBodyRightTackle, - down:Second, - terrain:Yards(13) - ), - Play( - action:Mesh, - down:Third, - terrain:Yards(14) - ), - Play( - action:StrongFlood, - down:Fourth, - terrain:Yards(14) - ), - Play( - action: PlayActionComebacks, - down:First, - terrain:Yards(10) - ), - Play( - action:SlotOut, - down:Second, - terrain:Yards(1) - ) - ] + events: [ + Quarter(First), + Kickoff(Nebraska), + Play( + action: CrackStudentBodyRightTackle, + down:Second, + terrain:Yards(13) ), - Period( - start:Second, - end:None, - events:[ - Play( - action:PlayActionComebacks, - down: First, - terrain:Yards(10) - ), - Play( - action:SpeedOption, - down:Second, - terrain:Yards(7) - ), - Play( - action:SlotOut, - down:First, - terrain:Yards(10) - ), - Play( - action:PlayActionComebacks, - down:First, - terrain:Yards(10) - ), - Play( - action:StrongFlood, - down:First, - terrain:GoalLine - ), - Play( - action:StrongFlood, - down:Second, - terrain:GoalLine - ), - Play( - action:HalfbackSlipScreen, - down:Third, - terrain: GoalLine - ), - Play( - action:PlayActionComebacks, - down:None, - terrain:None, - ), - Score(Touchdown), - Score(PatFail), - Kickoff(Iowa), - Play( - action: Unknown, - down:Second, - terrain:Yards(10) - ), - Play( - action: Unknown, - down:Third, - terrain:Yards(10) - ), - Play( - action: Unknown, //Shotgun double flex Shoot Centre - down:Fourth, - terrain:Yards(10) - ), - Turnover(Nebraska), - Play( - action:SlantBubble, - down: First, - terrain: GoalLine, - ) - ] + Play( + action:Mesh, + down:Third, + terrain:Yards(14) ), - Period( - start:Third, - end: Fourth, - events: [ - Kickoff(Iowa), - Play( - action:Unknown, - down: Second, - terrain:Yards(4) - ), - Play( - action:Unknown, //PA? - down: First, - terrain:Yards(10), - ), - Play( - action: Unknown,//IForm Normal, Thrown - down: None, - terrain: None - ), - Score(Touchdown), - Score(PatSafety), - Kickoff(Nebraska), - Play( - action: PlayActionBoot, - down: First, - terrain: Yards(10) - ), - Play( - action: SlantBubble, - down: First, - terrain: Yards(10) - ), - Play( - action: FleaFlicker, - down: Second, - terrain: Yards(10) - ), - Play( - action:PlayActionComebacks, - down: Third, - terrain: Yards(10) - ), - Play( - action: SlotOut, - down: First, - terrain: GoalLine - ), - Play( - action: HalfbackSlipScreen, - down: Second, - terrain: GoalLine, - ), - Play( - action: SpeedOption, - down: Third, - terrain: GoalLine, - ), - Play( - action: StrongFlood, - down: Fourth, - terrain: GoalLine - ), - Play( - action: Curls, - down: None, - terrain: None - ), - Turnover(Iowa), - Play( - action: Unknown, - down: Second, - terrain: Yards(10) - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(10) - ), - Play( - action: Unknown,// Run - down: Fourth, - terrain: Yards(7) - ), - Play( - action:Unknown, - down: First, - terrain: Yards(10) - ), - Turnover(Nebraska), - Play( - action:SlantBubble, - down: Second, - terrain: Yards(2) - ), - Play( - action: PlayActionPowerZero, - down: Third, - terrain: Yards(2) - ), - Play( - action: CrackStudentBodyRightTackle, - down: First, - terrain: Yards(10) - ), - Play( - action: StrongFlood, - down: Second, - terrain: Yards(10) - ), - Play( - action: PlayActionComebacks, - down: None, - terrain: None - ) - ] + Play( + action:StrongFlood, + down:Fourth, + terrain:Yards(14) + ), + Play( + action: PlayActionComebacks, + down:First, + terrain:Yards(10) + ), + Play( + action:SlotOut, + down:Second, + terrain:Yards(1) + ), + Quarter(Second), + Play( + action:PlayActionComebacks, + down: First, + terrain:Yards(10) + ), + Play( + action:SpeedOption, + down:Second, + terrain:Yards(7) + ), + Play( + action:SlotOut, + down:First, + terrain:Yards(10) + ), + Play( + action:PlayActionComebacks, + down:First, + terrain:Yards(10) + ), + Play( + action:StrongFlood, + down:First, + terrain:GoalLine + ), + Play( + action:StrongFlood, + down:Second, + terrain:GoalLine + ), + Play( + action:HalfbackSlipScreen, + down:Third, + terrain: GoalLine + ), + Play( + action:PlayActionComebacks, + down:None, + terrain:None, + ), + Score(Touchdown), + Score(PatFail), + Kickoff(Iowa), + Play( + action: Unknown, + down:Second, + terrain:Yards(10) + ), + Play( + action: Unknown, + down:Third, + terrain:Yards(10) + ), + Play( + action: Unknown, //Shotgun double flex Shoot Centre + down:Fourth, + terrain:Yards(10) + ), + Turnover(Nebraska), + Play( + action:SlantBubble, + down: First, + terrain: GoalLine, + ), + Quarter(Third), + Kickoff(Iowa), + Play( + action:Unknown, + down: Second, + terrain:Yards(4) + ), + Play( + action:Unknown, //PA? + down: First, + terrain:Yards(10), + ), + Play( + action: Unknown,//IForm Normal, Thrown + down: None, + terrain: None + ), + Score(Touchdown), + Score(PatSafety), + Kickoff(Nebraska), + Play( + action: PlayActionBoot, + down: First, + terrain: Yards(10) + ), + Play( + action: SlantBubble, + down: First, + terrain: Yards(10) + ), + Play( + action: FleaFlicker, + down: Second, + terrain: Yards(10) + ), + Play( + action:PlayActionComebacks, + down: Third, + terrain: Yards(10) + ), + Play( + action: SlotOut, + down: First, + terrain: GoalLine + ), + Play( + action: HalfbackSlipScreen, + down: Second, + terrain: GoalLine, + ), + Quarter(Fourth), + Play( + action: SpeedOption, + down: Third, + terrain: GoalLine, + ), + Play( + action: StrongFlood, + down: Fourth, + terrain: GoalLine + ), + Play( + action: Curls, + down: None, + terrain: None + ), + Turnover(Iowa), + Play( + action: Unknown, + down: Second, + terrain: Yards(10) + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(10) + ), + Play( + action: Unknown,// Run + down: Fourth, + terrain: Yards(7) + ), + Play( + action:Unknown, + down: First, + terrain: Yards(10) + ), + Turnover(Nebraska), + Play( + action:SlantBubble, + down: Second, + terrain: Yards(2) + ), + Play( + action: PlayActionPowerZero, + down: Third, + terrain: Yards(2) + ), + Play( + action: CrackStudentBodyRightTackle, + down: First, + terrain: Yards(10) + ), + Play( + action: StrongFlood, + down: Second, + terrain: Yards(10) + ), + Play( + action: PlayActionComebacks, + down: None, + terrain: None ) ] ), Game( // TexasAnM were opponents, but not recorded as // they were not present; Miller played in place. - version: "0.6.0", + version: "0.7.0", flags: [Interval(2), IgnoreTeam(TexasAnM)], - periods: [ - Period( - start: First, - end: None, - events: [ - Turnover(SouthCarolina), - Play( - action: FleaFlicker, - down: None, - terrain: None - ), - Turnover(TexasAnM) - ] + events: [ + Quarter(First), + Turnover(SouthCarolina), + Play( + action: FleaFlicker, + down: None, + terrain: None ), - Period( - start: Second, - end: None, - events:[ - Turnover(SouthCarolina), - Play( - action: SpeedOption, - down: Second, - terrain: Yards(9) - ), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Turnover(TexasAnM), - Score(FieldGoal) - ] + Turnover(TexasAnM), + Quarter(Second), + Turnover(SouthCarolina), + Play( + action: SpeedOption, + down: Second, + terrain: Yards(9) ), - Period( - start: Third, - end: Fourth, - events: [ - Kickoff(SouthCarolina), - Play( - action: Unknown, // Rush - down: Second, - terrain: Yards(7) - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(16) - ), - Play( - action: HalfbackSweep, - down: Fourth, - terrain: Yards(17) - ), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Turnover(TexasAnM), - Score(Touchdown), - Score(PatSafety), - Kickoff(SouthCarolina), - Play( - action: HalfbackSweep, - down: Second, - terrain: Yards(13) - ), - Play( - action: Unknown, - down: First, - terrain: Yards(10) - ), - Play( - action: Unknown,//DoubleFlex Throw - down: Second, - terrain: Yards(10) - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(10) - ), - Play( - action: Unknown, - down: Fourth, - terrain: Yards(10) - ), - Play( - action: Unknown, // Rush - down: None, - terrain: None - ), - Turnover(TexasAnM), - Score(Touchdown), - Score(PatSafety), - Kickoff(SouthCarolina), - Play( - action: Unknown, - down: Second, - terrain: Yards(13) - ), - Play( - action: HalfbackSweep, - down: None, - terrain: None, - ) - //Texas 17, SouthCarolina 0 - ] + Play( + action: Unknown, + down: None, + terrain: None, + ), + Turnover(TexasAnM), + Score(FieldGoal), + Quarter(Third), + Kickoff(SouthCarolina), + Play( + action: Unknown, // Rush + down: Second, + terrain: Yards(7) + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(16) + ), + Play( + action: HalfbackSweep, + down: Fourth, + terrain: Yards(17) + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Turnover(TexasAnM), + Score(Touchdown), + Score(PatSafety), + Kickoff(SouthCarolina), + Play( + action: HalfbackSweep, + down: Second, + terrain: Yards(13) + ), + Play( + action: Unknown, + down: First, + terrain: Yards(10) + ), + Quarter(Fourth), + Play( + action: Unknown,//DoubleFlex Throw + down: Second, + terrain: Yards(10) + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(10) + ), + Play( + action: Unknown, + down: Fourth, + terrain: Yards(10) + ), + Play( + action: Unknown, // Rush + down: None, + terrain: None + ), + Turnover(TexasAnM), + Score(Touchdown), + Score(PatSafety), + Kickoff(SouthCarolina), + Play( + action: Unknown, + down: Second, + terrain: Yards(13) + ), + Play( + action: HalfbackSweep, + down: None, + terrain: None, ) + //Texas 17, SouthCarolina 0 ] ) ] diff --git a/gamelog/Cargo.lock b/gamelog/Cargo.lock index 29cd030..e542113 100644 --- a/gamelog/Cargo.lock +++ b/gamelog/Cargo.lock @@ -19,7 +19,7 @@ dependencies = [ [[package]] name = "gamelog" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ron", "semver", diff --git a/gamelog/Cargo.toml b/gamelog/Cargo.toml index 9888864..c014abc 100644 --- a/gamelog/Cargo.toml +++ b/gamelog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gamelog" -version = "0.6.0" +version = "0.7.0" edition = "2024" [dependencies] diff --git a/gamelog/src/event.rs b/gamelog/src/event.rs index c483a4e..f53f9be 100644 --- a/gamelog/src/event.rs +++ b/gamelog/src/event.rs @@ -1,4 +1,4 @@ -use crate::{Down, Play, TerrainState, error}; +use crate::{Down, Play, Quarter, TerrainState, error}; use serde::Deserialize; type Offence = Team; @@ -10,6 +10,7 @@ pub enum Event { Turnover(Offence), Penalty(TerrainState), Score(ScorePoints), + Quarter(Quarter), } impl Event { @@ -74,6 +75,14 @@ impl Event { _ => Err(error::NoTeamAttribute), } } + + pub fn quarter(&self) -> Option { + if let Event::Quarter(quarter) = self { + Some(quarter.to_owned()) + } else { + None + } + } } #[derive(Debug, Deserialize, Clone, PartialEq)] @@ -171,6 +180,20 @@ mod tests { terrain: Some(TerrainState::Inches), }); + let quarter = Event::Quarter(Quarter::First); + + assert!(None == quarter.delta(&kickoff)); + assert!(None == quarter.delta(&first_down)); + assert!(None == quarter.delta(&second_down)); + assert!(None == quarter.delta(&third_down)); + assert!(None == quarter.delta(&fourth_down)); + assert!(None == quarter.delta(&turnover)); + assert!(None == quarter.delta(&penalty)); + assert!(None == quarter.delta(&goal_line)); + assert!(None == quarter.delta(&inches)); + assert!(None == quarter.delta(&score)); + assert!(None == quarter.delta(&quarter)); + assert!(10_i8 == kickoff.delta(&first_down).unwrap()); assert!(0_i8 == kickoff.delta(&second_down).unwrap()); assert!(None == kickoff.delta(&penalty)); @@ -248,9 +271,9 @@ mod tests { assert!(None == inches.delta(&kickoff)); assert!(None == inches.delta(&first_down)); - assert!(-10_i8 == goal_line.delta(&second_down).unwrap()); - assert!(-13_i8 == goal_line.delta(&third_down).unwrap()); - assert!(-5_i8 == goal_line.delta(&fourth_down).unwrap()); + assert!(-10_i8 == inches.delta(&second_down).unwrap()); + assert!(-13_i8 == inches.delta(&third_down).unwrap()); + assert!(-5_i8 == inches.delta(&fourth_down).unwrap()); assert!(None == inches.delta(&turnover)); assert!(None == inches.delta(&penalty)); assert!(None == inches.delta(&goal_line)); diff --git a/gamelog/src/game.rs b/gamelog/src/game.rs index 2ed7852..926d9ce 100644 --- a/gamelog/src/game.rs +++ b/gamelog/src/game.rs @@ -1,11 +1,12 @@ -use crate::{Event, Period, Team, error}; +use crate::{Event, Quarter, Team, error}; use serde::Deserialize; +use strum::IntoEnumIterator; #[derive(Debug, Deserialize, Clone)] pub struct Game { pub version: semver::Version, pub flags: Vec, - pub periods: Vec, + pub events: Vec, } impl Game { @@ -25,12 +26,10 @@ impl Game { let mut teams = vec![]; - self.periods.iter().for_each(|period| { - for event in period.events.iter() { - if let Ok(team) = event.team() { - if !ignore.contains(&team) && !teams.contains(&team) { - teams.push(team) - } + self.events.iter().for_each(|event| { + if let Ok(team) = event.team() { + if !ignore.contains(&team) && !teams.contains(&team) { + teams.push(team) } } }); @@ -43,12 +42,17 @@ impl Game { } pub fn deltas(&self, team: Team) -> Vec { - let events = self - .periods + let events: Vec = self + .team_events(team) .iter() - .filter_map(|period| Some(period.team_events(team.to_owned(), None).ok().unwrap())) - .collect::>>() - .concat(); + .filter_map(|event| { + if let Event::Quarter(_) = event { + None + } else { + Some(event.to_owned()) + } + }) + .collect(); let len = events.len() - 1; let mut idx: usize = 0; let mut deltas: Vec = vec![]; @@ -65,33 +69,30 @@ impl Game { } pub fn team_plays(&self, team: Team) -> usize { - self.periods + self.team_events(team) .iter() - .filter_map(|period| { - if !period.is_overtime() { - let plays = period.team_plays(team.to_owned(), None); - Some(plays.unwrap().len()) + .filter_map(|event| { + if let Event::Play(_) = event { + Some(event) } else { None } }) - .collect::>() - .iter() - .sum::() + .collect::>() + .len() } /// The average number of plays in a quarter. - /// Does not include OT plays or quarters where team indeterminate. pub fn avg_plays_per_quarter(&self, team: Team) -> f32 { - // Handle if teams known at start or not override via index calculation of all game events. + let periods: Vec = Quarter::iter() + .filter_map(|quarter| Some(self.to_owned().get_period(quarter.to_owned())).to_owned()) + .collect(); - let quarterly_avgs: Vec = self - .periods + let quarterly_avgs: Vec = periods .iter() .filter_map(|period| { if !period.is_overtime() { - let plays = period.team_plays(team.to_owned(), None); - Some(plays.unwrap().len() as f32 / period.quarters().len() as f32) + Some(period.team_plays(team.to_owned()) as f32) } else { None } @@ -142,29 +143,138 @@ impl Game { } pub fn penalties(&self, team: Team) -> usize { - // Knock down nesting? - self.periods + self.team_events(team) .iter() - .filter_map(|period| { - Some( - period - .team_events(team.to_owned(), None) - .ok()? - .iter() - .filter_map(|event| { - if let Event::Penalty(_) = event { - Some(event.to_owned()) - } else { - None - } - }) - .collect::>(), - ) + .filter_map(|event| { + if let Event::Penalty(_) = event { + Some(event.to_owned()) + } else { + None + } }) - .collect::>>() - .concat() + .collect::>() .len() } + + pub fn get_period(&self, quarter: Quarter) -> Period { + let mut record = false; + + Period { + period: quarter.to_owned(), + events: self + .events + .iter() + .filter_map(|event| { + if let Event::Quarter(_) = event { + record = Event::Quarter(quarter.to_owned()) == *event; + } + + if record { + return Some(event.to_owned()); + } + + None + }) + .collect::>(), + } + } + + pub fn team_events(&self, team: Team) -> Vec { + let mut events: Vec = vec![]; + let mut first = true; + let mut record: bool = true; + + self.events.iter().for_each(|event| { + if let Event::Kickoff(_) | Event::Turnover(_) = event { + record = { + if team == event.team().unwrap() { + // Wipe events vec if the start of quarter was opposition + // on offence. + if first { + events = vec![]; + } + + true + } else { + events.push(event.to_owned()); + false + } + }; + + first = false; + } + + if record { + events.push(event.to_owned()); + } + }); + + // If already handled or assumption override applicable + events + } +} + +#[derive(Debug, Clone)] +pub struct Period { + period: Quarter, + events: Vec, +} + +impl Period { + pub fn team_events(&self, team: Team) -> Vec { + let mut events: Vec = vec![]; + let mut first = true; + let mut record: bool = true; + + self.events.iter().for_each(|event| { + if let Event::Kickoff(_) | Event::Turnover(_) = event { + record = { + if team == event.team().unwrap() { + // Wipe events vec if the start of quarter was opposition + // on offence. + if first { + events = vec![]; + } + + true + } else { + events.push(event.to_owned()); + false + } + }; + + first = false; + } + + if record { + events.push(event.to_owned()); + } + }); + + events + } + + pub fn team_plays(&self, team: Team) -> usize { + self.team_events(team) + .iter() + .filter_map(|event| { + if let Event::Play(_) = event { + Some(event) + } else { + None + } + }) + .collect::>() + .len() + } + + pub fn is_overtime(&self) -> bool { + if let Quarter::Overtime(_) = self.period { + true + } else { + false + } + } } #[derive(Debug, Deserialize, Clone, PartialEq)] @@ -175,6 +285,7 @@ pub enum Flags { Interval(u8), } +/* #[cfg(test)] mod tests { use crate::*; @@ -184,30 +295,20 @@ mod tests { let a = Game { version: crate::MIN_VER, flags: vec![], - periods: vec![ - Period { - start: Quarter::First, - end: None, - events: vec![ - Event::Kickoff(Team::Nebraska), - Event::Play(Play::default()), - Event::Turnover(Team::ArizonaState), - ], - }, - Period { - start: Quarter::Second, - end: Some(Quarter::Fourth), - events: vec![ - Event::Turnover(Team::Nebraska), - Event::Play(Play::default()), - Event::Play(Play::default()), - Event::Play(Play::default()), - Event::Play(Play::default()), - Event::Play(Play::default()), - Event::Play(Play::default()), - Event::Turnover(Team::ArizonaState), - ], - }, + events: vec![ + Event::Quarter(Quarter::First), + Event::Kickoff(Team::Nebraska), + Event::Play(Play::default()), + Event::Turnover(Team::ArizonaState), + Event::Quarter(Quarter::Second), + Event::Turnover(Team::Nebraska), + Event::Play(Play::default()), + Event::Play(Play::default()), + Event::Play(Play::default()), + Event::Play(Play::default()), + Event::Play(Play::default()), + Event::Play(Play::default()), + Event::Turnover(Team::ArizonaState), ], }; @@ -409,4 +510,146 @@ mod tests { assert!(game.deltas(Team::Nebraska) == vec![10_i8, -3_i8, 5_i8, -2_i8, 12_i8]); assert!(game.deltas(Team::ArizonaState) == vec![10_i8, 0_i8]); } + + #[test] + fn team_events() { + let a = Period { + start: Quarter::First, + end: None, + events: vec![ + Event::Kickoff(Team::Nebraska), + Event::Play(Play::default()), + Event::Turnover(Team::ArizonaState), + Event::Play(Play::default()), + Event::Play(Play::default()), + Event::Kickoff(Team::Nebraska), + Event::Score(ScorePoints::Touchdown), + Event::Kickoff(Team::SouthCarolina), + ], + }; + + let b = Period { + start: Quarter::Second, + end: None, + events: vec![ + Event::Play(Play::default()), + Event::Turnover(Team::SouthCarolina), + ], + }; + + let c = Period { + start: Quarter::Second, + end: None, + events: vec![ + Event::Play(Play::default()), + Event::Turnover(Team::Nebraska), + ], + }; + + let d = Period { + start: Quarter::Second, + end: None, + events: vec![Event::Play(Play::default())], + }; + + assert!( + a.team_events(Team::Nebraska, None).unwrap() + == vec![ + Event::Kickoff(Team::Nebraska), + Event::Play(Play::default()), + Event::Turnover(Team::ArizonaState), + Event::Kickoff(Team::Nebraska), + Event::Score(ScorePoints::Touchdown), + Event::Kickoff(Team::SouthCarolina), + ] + ); + assert!( + b.team_events(Team::Nebraska, None).unwrap() + == vec![ + Event::Play(Play::default()), + Event::Turnover(Team::SouthCarolina) + ] + ); + assert!( + c.team_events(Team::Nebraska, None).unwrap() == vec![Event::Turnover(Team::Nebraska)] + ); + assert!(true == d.team_events(Team::Nebraska, None).is_err()); + assert!(false == d.team_events(Team::Nebraska, Some(true)).is_err()) + } + + #[test] + fn team_plays() { + let period = Period { + start: Quarter::First, + end: None, + events: vec![ + Event::Kickoff(Team::Nebraska), + Event::Play(Play::default()), + Event::Turnover(Team::ArizonaState), + Event::Play(Play::default()), + Event::Play(Play::default()), + Event::Kickoff(Team::Nebraska), + Event::Play(Play::default()), + Event::Score(ScorePoints::default()), + Event::Kickoff(Team::SouthCarolina), + Event::Play(Play::default()), + Event::Turnover(Team::Nebraska), + Event::Play(Play::default()), + ], + }; + + assert!( + period.team_plays(Team::Nebraska, None).unwrap() + == vec![Play::default(), Play::default(), Play::default()] + ); + } + + #[test] + fn quarters() { + let first = Period { + start: Quarter::First, + end: None, + events: vec![], + }; + + let second_fourth = Period { + start: Quarter::Second, + end: Some(Quarter::Fourth), + events: vec![], + }; + + let third_ot_three = Period { + start: Quarter::Third, + end: Some(Quarter::Overtime(3)), + events: vec![], + }; + + let ot_one_three = Period { + start: Quarter::Overtime(1), + end: Some(Quarter::Overtime(3)), + events: vec![], + }; + + assert!(first.quarters() == vec![Quarter::First]); + assert!(second_fourth.quarters() == vec![Quarter::Second, Quarter::Third, Quarter::Fourth]); + assert!( + third_ot_three.quarters() + == vec![ + Quarter::Third, + Quarter::Fourth, + Quarter::Overtime(1), + Quarter::Overtime(2), + Quarter::Overtime(3) + ] + ); + assert!( + ot_one_three.quarters() + == vec![ + Quarter::Overtime(1), + Quarter::Overtime(2), + Quarter::Overtime(3) + ] + ) + } } +*/ diff --git a/gamelog/src/lib.rs b/gamelog/src/lib.rs index 9ed9250..0878caf 100644 --- a/gamelog/src/lib.rs +++ b/gamelog/src/lib.rs @@ -9,7 +9,7 @@ mod play; mod terrain; #[allow(unused)] -pub const MIN_VER: semver::Version = semver::Version::new(0, 6, 0); +pub const MIN_VER: semver::Version = semver::Version::new(0, 7, 0); // I'm lazy. pub use action::*; diff --git a/gamelog/src/period.rs b/gamelog/src/period.rs index 3932d23..90335ec 100644 --- a/gamelog/src/period.rs +++ b/gamelog/src/period.rs @@ -1,125 +1,7 @@ -use crate::{Event, Play, Team, error}; use serde::Deserialize; +use strum::EnumIter; -#[derive(Debug, Deserialize, Clone)] -pub struct Period { - pub start: Quarter, - pub end: Option, - pub events: Vec, -} - -impl Period { - pub fn team_events( - &self, - team: Team, - assume_team_known: Option, - ) -> Result, error::CannotDetermineTeams> { - let mut events: Vec = vec![]; - let mut first = true; - let mut record: bool = true; - let assume_team_known = assume_team_known.unwrap_or(false); - - self.events.iter().for_each(|event| { - if let Event::Kickoff(_) | Event::Turnover(_) = event { - record = { - if team == event.team().unwrap() { - // Wipe events vec if the start of quarter was opposition - // on offence. - if first { - events = vec![]; - } - - true - } else { - events.push(event.to_owned()); - false - } - }; - - first = false; - } - - if record { - events.push(event.to_owned()); - } - }); - - // If already handled or assumption override applicable - if !first || (first && assume_team_known) { - Ok(events) - } else { - Err(error::CannotDetermineTeams) - } - } - - pub fn team_plays( - &self, - team: Team, - assume_team_known: Option, - ) -> Result, error::CannotDetermineTeams> { - Ok(self - .team_events(team, assume_team_known)? - .iter() - .filter_map(|event| { - if let Event::Play(play) = event { - Some(play.to_owned()) - } else { - None - } - }) - .collect()) - } - - pub fn quarters(&self) -> Vec { - let mut quarters: Vec = vec![self.start.to_owned()]; - - if self.end.is_none() { - return quarters; - } - - let order = vec![ - Quarter::First, - Quarter::Second, - Quarter::Third, - Quarter::Fourth, - ]; - - let start = if let Quarter::Overtime(x) = self.start { - (3 + x) as usize - } else { - order.iter().position(|q| q == &self.start).unwrap() - }; - - let end = if let Quarter::Overtime(x) = self.end.as_ref().unwrap() { - (3 + x) as usize - } else { - order - .iter() - .position(|q| q == self.end.as_ref().unwrap()) - .unwrap() - }; - - let range: Vec = ((start + 1)..=end).collect(); - - for i in range { - quarters.push(match i { - 0 => Quarter::First, - 1 => Quarter::Second, - 2 => Quarter::Third, - 3 => Quarter::Fourth, - _ => Quarter::Overtime((i - 3) as u8), - }); - } - - quarters - } - - pub fn is_overtime(&self) -> bool { - self.start.is_overtime() || self.end.as_ref().is_some_and(|some| some.is_overtime()) - } -} - -#[derive(Debug, Deserialize, Clone, PartialEq)] +#[derive(Debug, Deserialize, Clone, PartialEq, EnumIter)] pub enum Quarter { First, Second, @@ -127,159 +9,3 @@ pub enum Quarter { Fourth, Overtime(u8), } - -impl Quarter { - pub fn is_overtime(&self) -> bool { - if let Self::Overtime(_) = self { - true - } else { - false - } - } -} - -#[cfg(test)] -mod tests { - use crate::*; - - #[test] - fn team_events() { - let a = Period { - start: Quarter::First, - end: None, - events: vec![ - Event::Kickoff(Team::Nebraska), - Event::Play(Play::default()), - Event::Turnover(Team::ArizonaState), - Event::Play(Play::default()), - Event::Play(Play::default()), - Event::Kickoff(Team::Nebraska), - Event::Score(ScorePoints::Touchdown), - Event::Kickoff(Team::SouthCarolina), - ], - }; - - let b = Period { - start: Quarter::Second, - end: None, - events: vec![ - Event::Play(Play::default()), - Event::Turnover(Team::SouthCarolina), - ], - }; - - let c = Period { - start: Quarter::Second, - end: None, - events: vec![ - Event::Play(Play::default()), - Event::Turnover(Team::Nebraska), - ], - }; - - let d = Period { - start: Quarter::Second, - end: None, - events: vec![Event::Play(Play::default())], - }; - - assert!( - a.team_events(Team::Nebraska, None).unwrap() - == vec![ - Event::Kickoff(Team::Nebraska), - Event::Play(Play::default()), - Event::Turnover(Team::ArizonaState), - Event::Kickoff(Team::Nebraska), - Event::Score(ScorePoints::Touchdown), - Event::Kickoff(Team::SouthCarolina), - ] - ); - assert!( - b.team_events(Team::Nebraska, None).unwrap() - == vec![ - Event::Play(Play::default()), - Event::Turnover(Team::SouthCarolina) - ] - ); - assert!( - c.team_events(Team::Nebraska, None).unwrap() == vec![Event::Turnover(Team::Nebraska)] - ); - assert!(true == d.team_events(Team::Nebraska, None).is_err()); - assert!(false == d.team_events(Team::Nebraska, Some(true)).is_err()) - } - - #[test] - fn team_plays() { - let period = Period { - start: Quarter::First, - end: None, - events: vec![ - Event::Kickoff(Team::Nebraska), - Event::Play(Play::default()), - Event::Turnover(Team::ArizonaState), - Event::Play(Play::default()), - Event::Play(Play::default()), - Event::Kickoff(Team::Nebraska), - Event::Play(Play::default()), - Event::Score(ScorePoints::default()), - Event::Kickoff(Team::SouthCarolina), - Event::Play(Play::default()), - Event::Turnover(Team::Nebraska), - Event::Play(Play::default()), - ], - }; - - assert!( - period.team_plays(Team::Nebraska, None).unwrap() - == vec![Play::default(), Play::default(), Play::default()] - ); - } - - #[test] - fn quarters() { - let first = Period { - start: Quarter::First, - end: None, - events: vec![], - }; - - let second_fourth = Period { - start: Quarter::Second, - end: Some(Quarter::Fourth), - events: vec![], - }; - - let third_ot_three = Period { - start: Quarter::Third, - end: Some(Quarter::Overtime(3)), - events: vec![], - }; - - let ot_one_three = Period { - start: Quarter::Overtime(1), - end: Some(Quarter::Overtime(3)), - events: vec![], - }; - - assert!(first.quarters() == vec![Quarter::First]); - assert!(second_fourth.quarters() == vec![Quarter::Second, Quarter::Third, Quarter::Fourth]); - assert!( - third_ot_three.quarters() - == vec![ - Quarter::Third, - Quarter::Fourth, - Quarter::Overtime(1), - Quarter::Overtime(2), - Quarter::Overtime(3) - ] - ); - assert!( - ot_one_three.quarters() - == vec![ - Quarter::Overtime(1), - Quarter::Overtime(2), - Quarter::Overtime(3) - ] - ) - } -} diff --git a/miller/Cargo.lock b/miller/Cargo.lock index 4990f65..8cb997d 100644 --- a/miller/Cargo.lock +++ b/miller/Cargo.lock @@ -64,7 +64,7 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "gamelog" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ron", "semver", From aa7f9870291f6a686315ec4edca9590e4a04afc9 Mon Sep 17 00:00:00 2001 From: Cutieguwu Date: Tue, 22 Apr 2025 15:39:22 -0400 Subject: [PATCH 3/6] Add SheerDumbFuckingLuck flag. --- gamelog/Cargo.lock | 2 +- gamelog/Cargo.toml | 2 +- gamelog/src/game.rs | 1 + miller/Cargo.lock | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gamelog/Cargo.lock b/gamelog/Cargo.lock index e542113..34e43de 100644 --- a/gamelog/Cargo.lock +++ b/gamelog/Cargo.lock @@ -19,7 +19,7 @@ dependencies = [ [[package]] name = "gamelog" -version = "0.7.0" +version = "0.7.1" dependencies = [ "ron", "semver", diff --git a/gamelog/Cargo.toml b/gamelog/Cargo.toml index c014abc..e554533 100644 --- a/gamelog/Cargo.toml +++ b/gamelog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gamelog" -version = "0.7.0" +version = "0.7.1" edition = "2024" [dependencies] diff --git a/gamelog/src/game.rs b/gamelog/src/game.rs index 926d9ce..3958078 100644 --- a/gamelog/src/game.rs +++ b/gamelog/src/game.rs @@ -283,6 +283,7 @@ pub enum Flags { IgnoreTeam(Team), IgnoreScore, Interval(u8), + SheerDumbFuckingLuck } /* diff --git a/miller/Cargo.lock b/miller/Cargo.lock index 8cb997d..feeb3e7 100644 --- a/miller/Cargo.lock +++ b/miller/Cargo.lock @@ -64,7 +64,7 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "gamelog" -version = "0.7.0" +version = "0.7.1" dependencies = [ "ron", "semver", From 5c473c5eeea777f2d2fd6a560b95ccd6acf1ba73 Mon Sep 17 00:00:00 2001 From: Olivia Brooks <109807080+Cutieguwu@users.noreply.github.com> Date: Wed, 23 Apr 2025 12:08:54 -0400 Subject: [PATCH 4/6] Update gamelog.ron --- gamelog.ron | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 373 insertions(+) diff --git a/gamelog.ron b/gamelog.ron index 1bcc2af..cd25145 100644 --- a/gamelog.ron +++ b/gamelog.ron @@ -1002,5 +1002,378 @@ ) //Texas 17, SouthCarolina 0 ] + ), + Game( + version: "0.7.0", + flags: [Interval(3)], + events: [ + Quarter(1), + Kickoff(ArizonaState), + Play( + action: Unknown, + down: Second, + terrain: Yards(4), + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(4), + ), + Penalty(Yards(9), + Play( + action: PlayActionComebacks, + down: Fourth, + terrain: Yards(3), + ), + Quarter(Second), + Play( + action: HailMary, + down: None, + terrain: None + ), + Turnover(Iowa), + Play( + action: Unknown, // Iform throw + down: Second, + terrain: Inches + ), + Play( + action:Unknown, + down: First + terrain: Yards(10) + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(11) + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(11) + ), + Play( + action: PlayActionBoot, + down: Fourth, + terrain: Yards(11), + ), + Play( + action: Unknown, + down: None, + terrain: None + ), + Turnover(ArizonaState), + Play( + action: PlayActionComebacks, + down: Second, + terrain: Yards(1), + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Quarter(Third), + Kickoff(Iowa), + Play( + action: SpeedOption, + down: Second, + terrain: Yards(11), + ), + Play( + action: SlotOut, + down: Third, + terrain: Yards(11), + ), + Play( + action: HalfbackSlipScreen, + down: First, + terrain: Yards(10), + ), + Play( + action: SpeedOption, + down: Second, + terrain: Yards(11), + ), + Play( + action: SlotOut, + down: Third, + terrain: Yards(11), + ), + Play( + action: Unknown, + down: Fourth, + terrain: Yards(11), + ), + Turnover(ArizonaState) + Play( + action: HalfbackSlipScreen, + down: Second, + terrain: Yards(10), + ), + Play( + action: HalfbackSlam, + down: First, + terrain: Yards(10) + ), + Quarter(Fourth), + Play( + action: PlayActionBoot, + down: Second, + terrain: Yards(10), + ), + Play( + action: SlotOut, + down: Third, + terrain: Yards(1), + ), + Play( + action: PowerZero, + down: First, + terrain: Yards(10), + ), + Play( + action: HalfbackSlam, + down: Second, + terrain: Yards(3), + ), + Play( + action: PlayActionBoot, + down: First, + terrain: Yards(10), + ), + Play( + action: SlotOut, + down: Second, + terrain: Yards(1), + ), + Play( + action: HalfbackSlam, + down: First, + terrain: Yards(10) + ), + Play( + action: PlayActionComebacks, + down: First, + terrain: GoalLine, + ), + Score(FieldGoal), + Kickoff(Iowa), + Play( + action: HailMary, + down: First, + terrain: Yards(10), + ) + ] + ), + Game( + version: "0.7.1", + flags: [Interval(3), SheerDumbFuckingLuck], + events: [ + Quarter(First), + Kickoff(Nebraska), + Play( + action: SlotOut, + down: First, + terrain: Yards(10), + ), + Play( + action: SlantBubble, + down: Second, + terrain: Yards(10), + ), + Play( + action: PowerZero, + down: First, + terrain: Yards(10), + ), + Play( + action: PlayActionPowerZero, + down: First, + terrain: Yards(10), + ), + Play( + action: CrackStudentBodyRightTackle, + down: Second, + terrain: Yards(5), + ), + Play( + action: HalfbackSlipScreen, + down: Third, + terrain: Yards(5), + ), + Play( + action: SlotOut, + down: First, + terrain: Yards(10), + ), + Penalty(Yards(15)), + Play( + action: StrongFlood, + down: Second, + terrain: Yards(22) + ) + Play( + action: SlotOut, + down: Third, + terrain: Yards(22) + ) + Quarter(Second), + Play( + action: StrongFlood, + down: None, + terrain: None, + ), + Turnover(TexasAnM), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Curls, + down: First, + terrain: Yards(10) + ), + Play( + action: SlotOut, + down: Second, + terrain: Yards(1), + ), + Play( + action: Unknown, + down: First, + terrain: GoalLine + ) + Play( + action: Unknown, + down: None, + terrain: None, + ), + Score(Touchdown), + Score(PatSafety), + Kickoff(Nebraska), + Play( + action: PlayActionBoot, + down: Second, + terrain: Yards(10), + ), + Play( + action: PlayActionComebacks, + down: Third, + terrain: Yards(13), + ), + Quarter(Third), + Kickoff(TexasAnM), + Play( + action: PlayActionComebacks, + down: First, + terrain: Yards(10), + ), + Play( + action: PlayActionComebacks, + down: Second, + terrain: Yards(15), + ), + Play( + action: FleaFlicker, + down: Third, + terrain: Yards(15), + ), + Play( + action: StrongFlood, + down: Fourth, + terrain: Yards(19), + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Turnover(Nebraska), + Play( + action: SlotOut, + down: Second, + terrain: Yards(10), + ), + Play( + action: PowerZero, + down: Third, + terrain: Yards(7), + ), + Play( + action: PlayActionComebacks, + down: First, + terrain: Yards(10), + ), + Quarter(Fourth), + Penalty(Yards(15)) + Play( + action: StrongFlood, + down: Second, + terrain: Yards(11), + ), + Play( + action: PlayActionComebacks, + down: Third, + terrain: Yards(10), + ), + Play( + action: SlotOut, + down: Fourth, + terrain: Yards(1), + ), + Play( + action: PlayActionComebacks, + down: None, + terrain: None, + ), + Score(Touchdown), + Score(PatSafety), + Kickoff(TexasAnM), + Play( + action: StrongFlood, + down: Second, + terrain: Yards(Inches), + ), + Play( + action: PlayActionBoot, + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(17), + ), + Play( + action: PlayActionBoot, //Fucking bull + down: None, + terrain: None, + ), + Score(Touchdown), // Accross 75% of the field + Score(2), + Kickoff(Nebraska), + Play( + action: Unknown, // Fucking hit the wrong button. Fake punted instead of punted. + down: None, + terrain: None, + ), + ] ) ] From 8ba0e95b7429427bf47b83ddb19ceeb2f5664ab4 Mon Sep 17 00:00:00 2001 From: Olivia Brooks <109807080+Cutieguwu@users.noreply.github.com> Date: Wed, 23 Apr 2025 12:21:27 -0400 Subject: [PATCH 5/6] Revert "Update gamelog.ron" This reverts commit 5c473c5eeea777f2d2fd6a560b95ccd6acf1ba73. --- gamelog.ron | 373 ---------------------------------------------------- 1 file changed, 373 deletions(-) diff --git a/gamelog.ron b/gamelog.ron index cd25145..1bcc2af 100644 --- a/gamelog.ron +++ b/gamelog.ron @@ -1002,378 +1002,5 @@ ) //Texas 17, SouthCarolina 0 ] - ), - Game( - version: "0.7.0", - flags: [Interval(3)], - events: [ - Quarter(1), - Kickoff(ArizonaState), - Play( - action: Unknown, - down: Second, - terrain: Yards(4), - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(4), - ), - Penalty(Yards(9), - Play( - action: PlayActionComebacks, - down: Fourth, - terrain: Yards(3), - ), - Quarter(Second), - Play( - action: HailMary, - down: None, - terrain: None - ), - Turnover(Iowa), - Play( - action: Unknown, // Iform throw - down: Second, - terrain: Inches - ), - Play( - action:Unknown, - down: First - terrain: Yards(10) - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(11) - ), - Play( - action: Unknown, - down: Third, - terrain: Yards(11) - ), - Play( - action: PlayActionBoot, - down: Fourth, - terrain: Yards(11), - ), - Play( - action: Unknown, - down: None, - terrain: None - ), - Turnover(ArizonaState), - Play( - action: PlayActionComebacks, - down: Second, - terrain: Yards(1), - ), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Quarter(Third), - Kickoff(Iowa), - Play( - action: SpeedOption, - down: Second, - terrain: Yards(11), - ), - Play( - action: SlotOut, - down: Third, - terrain: Yards(11), - ), - Play( - action: HalfbackSlipScreen, - down: First, - terrain: Yards(10), - ), - Play( - action: SpeedOption, - down: Second, - terrain: Yards(11), - ), - Play( - action: SlotOut, - down: Third, - terrain: Yards(11), - ), - Play( - action: Unknown, - down: Fourth, - terrain: Yards(11), - ), - Turnover(ArizonaState) - Play( - action: HalfbackSlipScreen, - down: Second, - terrain: Yards(10), - ), - Play( - action: HalfbackSlam, - down: First, - terrain: Yards(10) - ), - Quarter(Fourth), - Play( - action: PlayActionBoot, - down: Second, - terrain: Yards(10), - ), - Play( - action: SlotOut, - down: Third, - terrain: Yards(1), - ), - Play( - action: PowerZero, - down: First, - terrain: Yards(10), - ), - Play( - action: HalfbackSlam, - down: Second, - terrain: Yards(3), - ), - Play( - action: PlayActionBoot, - down: First, - terrain: Yards(10), - ), - Play( - action: SlotOut, - down: Second, - terrain: Yards(1), - ), - Play( - action: HalfbackSlam, - down: First, - terrain: Yards(10) - ), - Play( - action: PlayActionComebacks, - down: First, - terrain: GoalLine, - ), - Score(FieldGoal), - Kickoff(Iowa), - Play( - action: HailMary, - down: First, - terrain: Yards(10), - ) - ] - ), - Game( - version: "0.7.1", - flags: [Interval(3), SheerDumbFuckingLuck], - events: [ - Quarter(First), - Kickoff(Nebraska), - Play( - action: SlotOut, - down: First, - terrain: Yards(10), - ), - Play( - action: SlantBubble, - down: Second, - terrain: Yards(10), - ), - Play( - action: PowerZero, - down: First, - terrain: Yards(10), - ), - Play( - action: PlayActionPowerZero, - down: First, - terrain: Yards(10), - ), - Play( - action: CrackStudentBodyRightTackle, - down: Second, - terrain: Yards(5), - ), - Play( - action: HalfbackSlipScreen, - down: Third, - terrain: Yards(5), - ), - Play( - action: SlotOut, - down: First, - terrain: Yards(10), - ), - Penalty(Yards(15)), - Play( - action: StrongFlood, - down: Second, - terrain: Yards(22) - ) - Play( - action: SlotOut, - down: Third, - terrain: Yards(22) - ) - Quarter(Second), - Play( - action: StrongFlood, - down: None, - terrain: None, - ), - Turnover(TexasAnM), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Play( - action: Curls, - down: First, - terrain: Yards(10) - ), - Play( - action: SlotOut, - down: Second, - terrain: Yards(1), - ), - Play( - action: Unknown, - down: First, - terrain: GoalLine - ) - Play( - action: Unknown, - down: None, - terrain: None, - ), - Score(Touchdown), - Score(PatSafety), - Kickoff(Nebraska), - Play( - action: PlayActionBoot, - down: Second, - terrain: Yards(10), - ), - Play( - action: PlayActionComebacks, - down: Third, - terrain: Yards(13), - ), - Quarter(Third), - Kickoff(TexasAnM), - Play( - action: PlayActionComebacks, - down: First, - terrain: Yards(10), - ), - Play( - action: PlayActionComebacks, - down: Second, - terrain: Yards(15), - ), - Play( - action: FleaFlicker, - down: Third, - terrain: Yards(15), - ), - Play( - action: StrongFlood, - down: Fourth, - terrain: Yards(19), - ), - Play( - action: Unknown, - down: None, - terrain: None, - ), - Turnover(Nebraska), - Play( - action: SlotOut, - down: Second, - terrain: Yards(10), - ), - Play( - action: PowerZero, - down: Third, - terrain: Yards(7), - ), - Play( - action: PlayActionComebacks, - down: First, - terrain: Yards(10), - ), - Quarter(Fourth), - Penalty(Yards(15)) - Play( - action: StrongFlood, - down: Second, - terrain: Yards(11), - ), - Play( - action: PlayActionComebacks, - down: Third, - terrain: Yards(10), - ), - Play( - action: SlotOut, - down: Fourth, - terrain: Yards(1), - ), - Play( - action: PlayActionComebacks, - down: None, - terrain: None, - ), - Score(Touchdown), - Score(PatSafety), - Kickoff(TexasAnM), - Play( - action: StrongFlood, - down: Second, - terrain: Yards(Inches), - ), - Play( - action: PlayActionBoot, - down: First, - terrain: Yards(10), - ), - Play( - action: Unknown, - down: Second, - terrain: Yards(17), - ), - Play( - action: PlayActionBoot, //Fucking bull - down: None, - terrain: None, - ), - Score(Touchdown), // Accross 75% of the field - Score(2), - Kickoff(Nebraska), - Play( - action: Unknown, // Fucking hit the wrong button. Fake punted instead of punted. - down: None, - terrain: None, - ), - ] ) ] From 6b341f5b1f38ac0b34f612326e7c60ca9416ff21 Mon Sep 17 00:00:00 2001 From: Olivia Brooks <109807080+Cutieguwu@users.noreply.github.com> Date: Wed, 23 Apr 2025 12:21:59 -0400 Subject: [PATCH 6/6] Reapply "Update gamelog.ron" This reverts commit 8ba0e95b7429427bf47b83ddb19ceeb2f5664ab4. --- gamelog.ron | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 373 insertions(+) diff --git a/gamelog.ron b/gamelog.ron index 1bcc2af..cd25145 100644 --- a/gamelog.ron +++ b/gamelog.ron @@ -1002,5 +1002,378 @@ ) //Texas 17, SouthCarolina 0 ] + ), + Game( + version: "0.7.0", + flags: [Interval(3)], + events: [ + Quarter(1), + Kickoff(ArizonaState), + Play( + action: Unknown, + down: Second, + terrain: Yards(4), + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(4), + ), + Penalty(Yards(9), + Play( + action: PlayActionComebacks, + down: Fourth, + terrain: Yards(3), + ), + Quarter(Second), + Play( + action: HailMary, + down: None, + terrain: None + ), + Turnover(Iowa), + Play( + action: Unknown, // Iform throw + down: Second, + terrain: Inches + ), + Play( + action:Unknown, + down: First + terrain: Yards(10) + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(11) + ), + Play( + action: Unknown, + down: Third, + terrain: Yards(11) + ), + Play( + action: PlayActionBoot, + down: Fourth, + terrain: Yards(11), + ), + Play( + action: Unknown, + down: None, + terrain: None + ), + Turnover(ArizonaState), + Play( + action: PlayActionComebacks, + down: Second, + terrain: Yards(1), + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Quarter(Third), + Kickoff(Iowa), + Play( + action: SpeedOption, + down: Second, + terrain: Yards(11), + ), + Play( + action: SlotOut, + down: Third, + terrain: Yards(11), + ), + Play( + action: HalfbackSlipScreen, + down: First, + terrain: Yards(10), + ), + Play( + action: SpeedOption, + down: Second, + terrain: Yards(11), + ), + Play( + action: SlotOut, + down: Third, + terrain: Yards(11), + ), + Play( + action: Unknown, + down: Fourth, + terrain: Yards(11), + ), + Turnover(ArizonaState) + Play( + action: HalfbackSlipScreen, + down: Second, + terrain: Yards(10), + ), + Play( + action: HalfbackSlam, + down: First, + terrain: Yards(10) + ), + Quarter(Fourth), + Play( + action: PlayActionBoot, + down: Second, + terrain: Yards(10), + ), + Play( + action: SlotOut, + down: Third, + terrain: Yards(1), + ), + Play( + action: PowerZero, + down: First, + terrain: Yards(10), + ), + Play( + action: HalfbackSlam, + down: Second, + terrain: Yards(3), + ), + Play( + action: PlayActionBoot, + down: First, + terrain: Yards(10), + ), + Play( + action: SlotOut, + down: Second, + terrain: Yards(1), + ), + Play( + action: HalfbackSlam, + down: First, + terrain: Yards(10) + ), + Play( + action: PlayActionComebacks, + down: First, + terrain: GoalLine, + ), + Score(FieldGoal), + Kickoff(Iowa), + Play( + action: HailMary, + down: First, + terrain: Yards(10), + ) + ] + ), + Game( + version: "0.7.1", + flags: [Interval(3), SheerDumbFuckingLuck], + events: [ + Quarter(First), + Kickoff(Nebraska), + Play( + action: SlotOut, + down: First, + terrain: Yards(10), + ), + Play( + action: SlantBubble, + down: Second, + terrain: Yards(10), + ), + Play( + action: PowerZero, + down: First, + terrain: Yards(10), + ), + Play( + action: PlayActionPowerZero, + down: First, + terrain: Yards(10), + ), + Play( + action: CrackStudentBodyRightTackle, + down: Second, + terrain: Yards(5), + ), + Play( + action: HalfbackSlipScreen, + down: Third, + terrain: Yards(5), + ), + Play( + action: SlotOut, + down: First, + terrain: Yards(10), + ), + Penalty(Yards(15)), + Play( + action: StrongFlood, + down: Second, + terrain: Yards(22) + ) + Play( + action: SlotOut, + down: Third, + terrain: Yards(22) + ) + Quarter(Second), + Play( + action: StrongFlood, + down: None, + terrain: None, + ), + Turnover(TexasAnM), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Play( + action: Curls, + down: First, + terrain: Yards(10) + ), + Play( + action: SlotOut, + down: Second, + terrain: Yards(1), + ), + Play( + action: Unknown, + down: First, + terrain: GoalLine + ) + Play( + action: Unknown, + down: None, + terrain: None, + ), + Score(Touchdown), + Score(PatSafety), + Kickoff(Nebraska), + Play( + action: PlayActionBoot, + down: Second, + terrain: Yards(10), + ), + Play( + action: PlayActionComebacks, + down: Third, + terrain: Yards(13), + ), + Quarter(Third), + Kickoff(TexasAnM), + Play( + action: PlayActionComebacks, + down: First, + terrain: Yards(10), + ), + Play( + action: PlayActionComebacks, + down: Second, + terrain: Yards(15), + ), + Play( + action: FleaFlicker, + down: Third, + terrain: Yards(15), + ), + Play( + action: StrongFlood, + down: Fourth, + terrain: Yards(19), + ), + Play( + action: Unknown, + down: None, + terrain: None, + ), + Turnover(Nebraska), + Play( + action: SlotOut, + down: Second, + terrain: Yards(10), + ), + Play( + action: PowerZero, + down: Third, + terrain: Yards(7), + ), + Play( + action: PlayActionComebacks, + down: First, + terrain: Yards(10), + ), + Quarter(Fourth), + Penalty(Yards(15)) + Play( + action: StrongFlood, + down: Second, + terrain: Yards(11), + ), + Play( + action: PlayActionComebacks, + down: Third, + terrain: Yards(10), + ), + Play( + action: SlotOut, + down: Fourth, + terrain: Yards(1), + ), + Play( + action: PlayActionComebacks, + down: None, + terrain: None, + ), + Score(Touchdown), + Score(PatSafety), + Kickoff(TexasAnM), + Play( + action: StrongFlood, + down: Second, + terrain: Yards(Inches), + ), + Play( + action: PlayActionBoot, + down: First, + terrain: Yards(10), + ), + Play( + action: Unknown, + down: Second, + terrain: Yards(17), + ), + Play( + action: PlayActionBoot, //Fucking bull + down: None, + terrain: None, + ), + Score(Touchdown), // Accross 75% of the field + Score(2), + Kickoff(Nebraska), + Play( + action: Unknown, // Fucking hit the wrong button. Fake punted instead of punted. + down: None, + terrain: None, + ), + ] ) ]