add kusudamas

This commit is contained in:
Yonokid
2025-08-13 23:17:53 -04:00
parent 0912e8ff9c
commit c458ddb52b
4 changed files with 137 additions and 12 deletions

View File

@@ -185,6 +185,10 @@ class TextureChangeAnimation(BaseAnimation):
self.delay_saved = delay
self.attribute = textures[0][2]
def reset(self):
super().reset()
self.attribute = self.textures[0][2]
def update(self, current_time_ms: float) -> None:
super().update(current_time_ms)
if not self.is_started:
@@ -231,6 +235,7 @@ class TextureResizeAnimation(BaseAnimation):
self.reverse_delay_saved = reverse_delay
self.ease_in = ease_in
self.ease_out = ease_out
self.attribute = self.initial_size
def restart(self) -> None:
super().restart()

View File

@@ -99,6 +99,7 @@ class Balloon(Note):
_source_note: Note
count: int = field(init=False)
popped: bool = False
is_kusudama: bool = False
def __repr__(self):
return str(self.__dict__)
@@ -574,11 +575,14 @@ class TJAParser:
if item in {'5', '6'}:
note = Drumroll(note)
note.color = 255
elif item in {'7'}:
elif item in {'7', '9'}:
count += 1
if balloon is None:
raise Exception("Balloon note found, but no count was specified")
note = Balloon(note)
if item == '9':
note = Balloon(note, is_kusudama=True)
else:
note = Balloon(note)
note.count = 1 if not balloon else balloon.pop(0)
elif item == '8':
new_pixels_per_ms = play_note_list[-1].pixels_per_frame_x / (1000 / 60)