28 lines
1.3 KiB
Dart
28 lines
1.3 KiB
Dart
import '../../home/home_screen.dart' show formatPop;
|
|
import '../eclipse_data.dart';
|
|
import '../../../core/i18n/app_locale.dart';
|
|
|
|
/// 티커 한 줄의 문구.
|
|
///
|
|
/// Figma 홈 상단 라이브 띠의 문장 형식을 그대로 쓴다 —
|
|
/// *「[LIVE] …님의 아이템 사용으로 버프가 발동되었습니다!」*.
|
|
/// 이클립스 방어 참여는 같은 형식에 **참여량**을 싣는다. POP 이 아니다 — 방어는
|
|
/// POP 을 소모하지 않는 공동 Shake 참여다(설계서 v1.1 §9-#5).
|
|
///
|
|
/// **문구를 만드는 곳을 한 곳에 둔다.** 홈 티커와 갤럭시 섬광 배너가 각자 문장을
|
|
/// 조립하면 같은 이벤트가 두 화면에서 다르게 읽힌다.
|
|
///
|
|
/// 별첨 B 「Global Ticker」로 Eclipse 외의 종류가 뒤에 들어오므로 종류마다 한 줄씩
|
|
/// 늘려 간다. 모르는 종류는 공지로 읽어 티커가 멈추지 않게 한다.
|
|
String liveEventMessage(LiveEvent event) => switch (event.kind) {
|
|
LiveEventKind.eclipseDefense =>
|
|
appL10n.liveEclipseDefense(event.nickname, formatPop(event.defense)),
|
|
LiveEventKind.artistHotTime =>
|
|
appL10n.liveHotTime(event.nickname),
|
|
LiveEventKind.heroGift =>
|
|
appL10n.liveHeroGift(event.nickname),
|
|
LiveEventKind.campaign =>
|
|
appL10n.liveCampaign(event.nickname),
|
|
LiveEventKind.notice => '[LIVE] ${event.nickname}',
|
|
};
|