import type { EventDefinition } from '$lib/engine/event-optimization.ts'; const gamersFeaturedCards = [ 'card-00006-5-uniq-0074-00', 'card-00014-5-uniq-0075-00', 'card-00016-5-uniq-0076-00', 'card-00017-5-uniq-0077-00' ] as const; const summerFeaturedCards = ['card-00004-5-uniq-0081-00', 'card-04013-5-uniq-0083-00', 'card-00035-5-uniq-0082-00', 'card-03005-5-uniq-0084-00'] as const; // Schedule: https://dengekionline.com/article/202609/88492 // Bonuses: https://gamerch.com/hololive-dreams/1015338 // IDs/names: HolodoriDB kor 5517e40b931fec10253f5b850989346518e233c2. const summerChapters = [ ['아키로제식 여름 휴가', 'chr-00004', 'm0349', 19, 21], ['더위와 풀장과 독서가와', 'chr-04013', 'm0351', 21, 23], ['총수의 파라다이스 침략 작전!', 'chr-00035', 'm0350', 23, 25], ['유능 감독, 성지순례에 나서다', 'chr-03005', 'm0352', 25, 27] ] as const; export const events = [ { // HolodoriDB supplies the card/song IDs; the public master-data diff does not include // the live-service schedule, so the official event period and bonus rules live here. id: 'marathon_event-normal-003', name: '무인도 잭! 한여름의 서바이벌 데이즈', startsAt: '2026-08-29T03:00:00.000Z', endsAt: '2026-09-06T10:59:59.999Z', bonusCharacterIds: ['chr-00006', 'chr-00014', 'chr-00016', 'chr-00017'], featuredCardIds: gamersFeaturedCards, challengeSongBonusCardIds: { m0338: [gamersFeaturedCards[0]], m0339: [gamersFeaturedCards[1]], m0340: [gamersFeaturedCards[2]], m0341: [gamersFeaturedCards[3]], m0342: gamersFeaturedCards }, formationBonusPercent: 30, featuredCardBonusPercent: 30, challengeSongScoreBonusPercent: 10, awakeningBonusPercentByRarity: { 3: [0, 1, 1, 2, 2, 3], 4: [0, 6, 7, 8, 9, 10], 5: [0, 15, 18, 22, 26, 30] } }, { id: 'marathon_event-relay-002', name: '몽환의 서머 이스케이프?!', startsAt: '2026-09-19T11:00:00.000Z', endsAt: '2026-09-27T10:59:59.999Z', bonusCharacterIds: [], featuredCardIds: summerFeaturedCards, challengeSongBonusCardIds: {}, formationBonusPercent: 50, featuredCardBonusPercent: 50, challengeSongScoreBonusPercent: 10, awakeningBonusPercentByRarity: { 3: [0, 1, 1, 2, 2, 3], 4: [0, 6, 7, 8, 9, 10], 5: [0, 15, 18, 22, 26, 30] }, chapters: summerChapters.map(([name, characterId, songId, start, end], index) => ({ id: `marathon_event-relay-002-chapter-0${index + 1}`, name, startsAt: `2026-09-${start}T11:00:00.000Z`, endsAt: `2026-09-${end}T10:59:59.999Z`, bonusCharacterIds: [characterId], challengeSongBonusCardIds: { [songId]: [summerFeaturedCards[index]] } })) } ] as const satisfies readonly EventDefinition[];