dancers can be removed

This commit is contained in:
Yonokid
2025-12-31 14:45:08 -05:00
parent 102d82001f
commit 7ef74a601b
2 changed files with 13 additions and 0 deletions

View File

@@ -130,10 +130,17 @@ class Background:
current_milestone = min(self.max_dancers - 1, int(gauge_1p.gauge_length / (clear_threshold / self.max_dancers)))
else:
current_milestone = self.max_dancers
if current_milestone > self.last_milestone and current_milestone <= self.max_dancers:
self.dancer.add_dancer()
self.last_milestone = current_milestone
logger.info(f"Dancer milestone reached: {current_milestone}/{self.max_dancers}")
elif current_milestone < self.last_milestone:
dancers_to_remove = self.last_milestone - current_milestone
for _ in range(dancers_to_remove):
self.dancer.remove_dancer()
self.last_milestone = current_milestone
logger.info(f"Dancer milestones lost: {current_milestone}/{self.max_dancers} (removed {dancers_to_remove})")
if self.bg_fever is not None and gauge_1p is not None:
if not self.is_clear and gauge_1p.is_clear:
self.bg_fever.start()

View File

@@ -162,6 +162,12 @@ class BaseDancerGroup():
dancer.start()
self.active_count += 1
def remove_dancer(self):
if self.active_count > 1:
self.active_count -= 1
position = self.spawn_positions[self.active_count]
self.active_dancers[position] = None
def update(self, current_time_ms: float, bpm: float):
for dancer in self.dancers:
dancer.update(current_time_ms, bpm)