From c4a73e068f66ce04840852ba8bdd19f908e1f335 Mon Sep 17 00:00:00 2001 From: Sebastian Krzyszkowiak <dos@dosowisko.net> Date: Wed, 22 Nov 2023 22:34:47 +0100 Subject: [PATCH] Track number of bad notes played --- score.py | 5 +++-- song.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/score.py b/score.py index bfe39cd..4a30816 100644 --- a/score.py +++ b/score.py @@ -20,7 +20,7 @@ from . import utils from .midireader import difficulties class ScoreView(BaseView): - def __init__(self, app, song, data, streak, difficulty): + def __init__(self, app, song, data, streak, badnotes, difficulty): super().__init__() self.app = app self.song = song @@ -29,12 +29,13 @@ class ScoreView(BaseView): self.flower = flower.Flower(0) self.time = 0 self.streak = streak + self.badnotes = badnotes self.played = False if not self.data: self.accuracy = 0.42 else: events = data.track.getAllEvents() - self.accuracy = len(set(filter(lambda x: x.played and not x.missed, events))) / len(events) + self.accuracy = len(set(filter(lambda x: x.played and not x.missed, events))) / (len(events) + badnotes) self.stars = int(5.0 * (self.accuracy + 0.05)) def draw(self, ctx: Context) -> None: diff --git a/song.py b/song.py index 702a815..3ac13b5 100644 --- a/song.py +++ b/song.py @@ -73,6 +73,7 @@ class SongView(BaseView): self.showstreak = 0.0 self.showstreakval = 0 self.longeststreak = 0 + self.badnotes = 0 self.led_override = [0] * 5 self.laststreak = -1 self.notes = set() @@ -402,7 +403,7 @@ class SongView(BaseView): self.finished = True media.stop() gc.collect() - self.vm.replace(score.ScoreView(self.app, self.song, self.data, self.longeststreak, self.difficulty), ViewTransitionBlend()) + self.vm.replace(score.ScoreView(self.app, self.song, self.data, self.longeststreak, self.badnotes, self.difficulty), ViewTransitionBlend()) return if self.streak > self.longeststreak: @@ -583,6 +584,7 @@ class SongView(BaseView): #print("fiba", petal, self.time, delta_time) utils.play_fiba(self.app) utils.emit("bad", petal) + self.badnotes += 1 self.bad = 1.0 self.bads[petal] = 1.0 self.streak = 0 @@ -609,6 +611,7 @@ class SongView(BaseView): if bad_chord or event.time < self.laststreak: utils.play_fiba(self.app) utils.emit("bad", event.number) + self.badnotes += 1 self.bad = 1.0 self.bads[event.number] = 1.0 self.streak = 0 -- GitLab