mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-10-04 21:33:58 +08:00
Clarify audience-facing RoadScore reaction labels
This commit is contained in:
@@ -38,16 +38,16 @@ def gesture_view(state):
|
||||
return 'Road alert / Percussion', 'active', 'native_alert'
|
||||
demo = state.get('replay_demo') or {}
|
||||
signal = demo.get('signal_mode')
|
||||
if signal in ('left', 'right', 'off'):
|
||||
if signal in ('left', 'right'):
|
||||
shaker = state.get('signal_shaker') or {}
|
||||
description = 'Shaker' if shaker.get('rendered_active') else 'Replay signal' if signal != 'off' else 'Recorded signals muted'
|
||||
title = f'Simulated {signal}' + (' shaker' if shaker.get('rendered_active') else '')
|
||||
description = 'Shaker' if shaker.get('rendered_active') else 'Replay signal'
|
||||
title = f'{signal.title()} signal'
|
||||
return f'{title} / {description}', 'active', 'simulated_signal'
|
||||
engagement = state.get('engagement_presentation') or {}
|
||||
if engagement.get('enabled') and not engagement.get('simulated') and engagement.get('input_fresh') and engagement.get('rendered_state') == 'transition':
|
||||
return ('Engaged / Opening music' if engagement.get('active') else 'Disengaged / Contained music'), 'active', 'engagement'
|
||||
if engagement.get('enabled') and engagement.get('simulated'):
|
||||
return ('Simulated engage / Music opens' if engagement.get('active') else 'Simulated disengage / Music contained'), 'active', 'simulated_engagement'
|
||||
return ('Music opens' if engagement.get('active') else 'Music contained'), 'active', 'simulated_engagement'
|
||||
motion = state.get('motion_presentation') or {}
|
||||
if motion.get('enabled') and motion.get('input_fresh'):
|
||||
mix, target = motion.get('rendered_open_mix'), motion.get('target_open_mix')
|
||||
@@ -208,8 +208,6 @@ def draw_panel(rl, font, state, screen_width, screen_height, emphasis_font=None,
|
||||
text(reserve, 11, 12, font, accent, width - 190, left=190)
|
||||
text(subtitle, 33, 16, font, muted, width - 64)
|
||||
else:
|
||||
if view['event_state'] == 'active':
|
||||
subtitle = subtitle.replace('Simulated ', 'Demo: ')
|
||||
def centered(label, top, size, face, tint):
|
||||
label = fit_text(label, width, lambda value: rl.measure_text_ex(face, value, size, 0).x)
|
||||
left = (width - rl.measure_text_ex(face, label, size, 0).x) / 2
|
||||
|
||||
@@ -9,11 +9,29 @@ from overlay_view import display_text, fit_text, overlay_view, hud_bounds, start
|
||||
|
||||
|
||||
class OverlayTests(unittest.TestCase):
|
||||
def test_simulation_label_survives_engagement_ramp(self):
|
||||
def test_simulated_engagement_describes_music_and_preserves_event_metadata(self):
|
||||
for active in (False, True):
|
||||
view = overlay_view({'engagement_presentation':dict(enabled=True,simulated=True,active=active,input_fresh=True,rendered_state='transition')})
|
||||
self.assertEqual(view['event_kind'], 'simulated_engagement')
|
||||
self.assertTrue(view['event'].startswith('Simulated '))
|
||||
self.assertEqual(view['event'], 'Music opens' if active else 'Music contained')
|
||||
|
||||
def test_manual_signal_off_is_not_a_music_event_or_roadscore_off_state(self):
|
||||
state = dict(readiness='READY', profile='prism', replay_demo={'signal_mode':'off'})
|
||||
self.assertEqual(overlay_view(state)['event'], '')
|
||||
self.assertEqual(overlay_view(state)['activity'], 'READY')
|
||||
state['curve_reaction'] = dict(enabled=True,input_fresh=True,rendered_phase='build')
|
||||
self.assertEqual(overlay_view(state)['event'], 'Curve / Building')
|
||||
state['engagement_presentation'] = dict(enabled=True,simulated=True,active=False)
|
||||
self.assertEqual(overlay_view(state)['event'], 'Music contained')
|
||||
|
||||
def test_manual_signal_names_direction_without_claiming_inaudible_shaker(self):
|
||||
for signal in ('left', 'right'):
|
||||
for rendered in (False, True):
|
||||
state = dict(replay_demo={'signal_mode':signal}, signal_shaker={'rendered_active':rendered})
|
||||
view = overlay_view(state)
|
||||
self.assertEqual(view['event'].split(' / ')[0], signal.title() + ' signal')
|
||||
self.assertEqual('Shaker' in view['event'], rendered)
|
||||
self.assertEqual(view['event_kind'], 'simulated_signal')
|
||||
def test_live_reactions_describe_rendered_audio(self):
|
||||
for phase, label in [('build', 'Curve / Building'), ('apex', 'Curve apex / Music opens')]:
|
||||
cue = dict(enabled=True, input_fresh=True, rendered_phase=phase)
|
||||
|
||||
Reference in New Issue
Block a user