- 121KB 단일 문서를 22개 태스크 문서로 분리 - 메인 인덱스 문서 (game-system-overhaul-index.md) 생성 - Phase 1-10 태스크 문서 10개 분리 - 추가 시스템 태스크 문서 10개 분리 - 재미 요소 설계 문서 1개 분리 - 기존 문서는 archive/ 폴더로 이동
7.2 KiB
7.2 KiB
이벤트/알림 시스템
1. 이벤트 시스템
1.1 이벤트 종류
| 이벤트 타입 | 주기 | 지속 시간 |
|---|---|---|
| 일일 보너스 | 매일 | 접속 시 |
| 주간 보스 | 매주 일요일 | 24시간 |
| 시즌 이벤트 | 시즌별 | 2-4주 |
| 기념일 이벤트 | 특정 날짜 | 1-7일 |
| 돌발 이벤트 | 랜덤 | 1-2시간 |
1.2 이벤트 구조
class GameEvent {
final String id;
final String name;
final EventType type;
final DateTime startTime;
final DateTime endTime;
final List<EventReward> rewards;
final List<EventQuest> quests;
final EventBonuses? bonuses;
}
class EventBonuses {
final double expMultiplier; // 경험치 배율
final double goldMultiplier; // 골드 배율
final double dropRateBonus; // 드롭률 보너스
}
1.3 시즌 이벤트 예시
| 시즌 | 테마 | 특별 콘텐츠 |
|---|---|---|
| 봄 | 버그 헌팅 시즌 | 특별 몬스터, 봄 한정 장비 |
| 여름 | 핫픽스 페스티벌 | 경험치 2배, 여름 코스튬 |
| 가을 | 수확의 코드 | 골드 2배, 가을 한정 펫 |
| 겨울 | 시스템 동면 | 특별 던전, 겨울 한정 세트 |
1.4 이벤트 보상 구조
┌─ 신년 이벤트 ───────────────────────┐
│ │
│ 🎉 2025 신년 맞이 특별 이벤트 │
│ 기간: 1/1 ~ 1/7 │
│ │
│ ─────────────────────────────────── │
│ 📋 이벤트 미션 │
│ │
│ ☑ 몬스터 100마리 처치 [100/100] │
│ 보상: 신년 무기 상자 │
│ │
│ ☐ 던전 5회 클리어 [3/5] │
│ 보상: 전설 물약 세트 │
│ │
│ ☐ 보스 처치 [0/1] │
│ 보상: 신년 한정 칭호 │
│ │
│ ─────────────────────────────────── │
│ 🎁 출석 보상 (7일) │
│ [✓][✓][✓][✓][ ][ ][ ] │
│ 1 2 3 4 5 6 7 │
│ │
│ 7일 완료 보상: 신년 한정 세트 │
│ │
└─────────────────────────────────────┘
1.5 돌발 이벤트
| 이벤트 | 발생 확률 | 효과 |
|---|---|---|
| 골드 러시 | 5% | 1시간 골드 3배 |
| 경험치 폭풍 | 5% | 1시간 경험치 2배 |
| 보물 사냥 | 3% | 희귀 아이템 드롭률 +100% |
| 엘리트 침공 | 3% | 정예 몬스터 대량 등장 |
| 행운의 시간 | 2% | 모든 보너스 적용 |
2. 알림/푸시 시스템
2.1 알림 종류
| 카테고리 | 알림 | 기본 설정 |
|---|---|---|
| 게임 진행 | 레벨업 | 켜기 |
| 퀘스트 완료 | 켜기 | |
| 보스 해금 | 켜기 | |
| 업적 달성 | 켜기 | |
| 전투 | 사망 | 켜기 |
| 희귀 아이템 획득 | 켜기 | |
| HP 위험 (20% 이하) | 끄기 | |
| 시스템 | 오프라인 보상 준비 | 켜기 |
| 일일 미션 갱신 | 켜기 | |
| 이벤트 시작/종료 | 켜기 | |
| 상점 갱신 | 끄기 | |
| 소셜 (향후) | 친구 요청 | 켜기 |
| 길드 알림 | 켜기 |
2.2 푸시 알림 (모바일)
class PushNotificationService {
/// 로컬 푸시 알림 예약
Future<void> scheduleNotification({
required String title,
required String body,
required DateTime scheduledTime,
String? payload,
});
/// 반복 알림 설정
Future<void> scheduleRepeating({
required String title,
required String body,
required RepeatInterval interval,
});
}
enum RepeatInterval {
hourly,
daily,
weekly,
}
2.3 푸시 알림 시나리오
| 시나리오 | 트리거 | 메시지 예시 |
|---|---|---|
| 복귀 유도 | 24시간 미접속 | "⚔️ 버그들이 기다리고 있어요!" |
| 오프라인 보상 | 8시간 경과 | "🎁 오프라인 보상이 가득 찼어요!" |
| 일일 미션 | 매일 오전 9시 | "📋 새로운 일일 미션이 도착했어요!" |
| 이벤트 | 이벤트 시작 | "🎉 신년 이벤트가 시작되었어요!" |
| 이벤트 종료 | 이벤트 종료 1시간 전 | "⏰ 이벤트가 1시간 후 종료됩니다!" |
2.4 인앱 알림
┌─ 알림 센터 ─────────────────────────┐
│ │
│ 오늘 │
│ ─────────────────────────────────── │
│ 🎮 레벨 26 달성! 14:32 │
│ │
│ ⚔️ 디버거의 검 획득 (Epic) 14:15 │
│ │
│ 📋 일일 미션 완료 13:45 │
│ 보상: 골드 500, 경험치 물약 │
│ │
│ 어제 │
│ ─────────────────────────────────── │
│ 🏆 업적 달성: 백전용사 23:12 │
│ │
│ 💀 사망: 메모리 누수에 의해 21:30 │
│ │
│ [ 모두 읽음 ] │
│ │
└─────────────────────────────────────┘
2.5 알림 설정 UI
┌─ 알림 설정 ─────────────────────────┐
│ │
│ 🔔 푸시 알림 │
│ 마스터 스위치 [● 켜기] │
│ │
│ ─────────────────────────────────── │
│ 게임 진행 │
│ 레벨업 [● 켜기] │
│ 퀘스트 완료 [● 켜기] │
│ 업적 달성 [● 켜기] │
│ │
│ 시스템 │
│ 오프라인 보상 [● 켜기] │
│ 일일 미션 갱신 [● 켜기] │
│ 이벤트 [● 켜기] │
│ │
│ 방해 금지 시간 │
│ [22:00] ~ [08:00] │
│ │
└─────────────────────────────────────┘