Files
fanuzu/app/lib/core/ui/fx_intensity.dart
T

23 lines
1.2 KiB
Dart

import 'package:flutter/services.dart';
/// UX·FX 정렬 기준 v1.5 §1 공통 강도 5단계 — 기능마다 햅틱을 따로 고르지 않게 한 곳에 둔다.
///
/// | 강도 | 대표 상황(원문) | 햅틱 원칙(원문) |
/// |---|---|---|
/// | Micro | 출석 · 좋아요 등 경량 행동 | Light 1회 또는 생략 |
/// | Small | 일반 ZAP · 일반 Quest | Light |
/// | Medium | Music/Location Quest 완료 · Level Up | Medium |
/// | Large | Campaign 주요 기여 · Eclipse 공동 방어 | Medium~Strong, 반복 억제 |
/// | Legendary | Planet Evolution · Campaign 100% · HERO GIFT | Strong 1회 + 필요 시 짧은 패턴 |
///
/// Large 는 원문이 「Medium~Strong」 범위라 Medium 과 구분되도록 Strong 을 쓴다(해석 확인 항목).
/// Legendary 의 「짧은 패턴」은 원문에 길이 · 횟수가 없어 Strong 1회만 낸다(해석 확인 항목).
enum FxIntensity { micro, small, medium, large, legendary }
/// 강도에 맞는 햅틱 한 번.
Future<void> fxHaptic(FxIntensity level) => switch (level) {
FxIntensity.micro || FxIntensity.small => HapticFeedback.lightImpact(),
FxIntensity.medium => HapticFeedback.mediumImpact(),
FxIntensity.large || FxIntensity.legendary => HapticFeedback.heavyImpact(),
};