diff --git a/src/components/game/Game.tsx b/src/components/game/Game.tsx index 06895e5..3ca14da 100644 --- a/src/components/game/Game.tsx +++ b/src/components/game/Game.tsx @@ -98,7 +98,7 @@ const TUTORIAL_STEPS: TutStep[] = [ check: (s) => s.hall.level >= 2, }, { - text: "축하해! 이제 이 마을은 온전히 네 거야. 건물을 늘리고, 마을을 꾸미고, 친구들을 돌봐줘. 난 회관에 있을게 — 언제든 놀러 와! 🐾", + text: "축하해! 이제 이 마을은 온전히 네 거야. 아 참 — 정착 지원금으로 냥코인 🪙200을 문패 아래 두고 갈게. 새 친구를 데려오거나 장터를 짓는 데 쓰렴! 난 회관에 있을게 🐾", manual: true, }, ]; diff --git a/src/lib/game/engine.ts b/src/lib/game/engine.ts index 3ee0067..bcf80cd 100644 --- a/src/lib/game/engine.ts +++ b/src/lib/game/engine.ts @@ -317,6 +317,11 @@ export const engine = { state.decors ??= []; state.tutorialStep ??= 99; // 기존 마을은 튜토리얼 생략 state.coins ??= 0; + // 소급 지급: 이미 튜토리얼을 마쳤는데 정착 지원금을 못 받은 마을 + if ((state.tutorialStep ?? 0) >= 99 && !state.settleGrantGiven) { + state.coins += 200; + state.settleGrantGiven = true; + } if (state.happinessUnlocked === undefined) { const deckBuilt = state.buildings.some( (b) => b.type === "sun_deck" && b.constructionUntil === undefined, @@ -401,6 +406,11 @@ export const engine = { best.exp = 0; } } + if (step === 9 && !state.settleGrantGiven) { + // 졸업 선물: 마을 정착 지원금 (장터 전까지 코인 수입이 없는 구간 해소) + state.coins = (state.coins ?? 0) + 200; + state.settleGrantGiven = true; + } }, @@ -742,6 +752,11 @@ export const engine = { state.decors ??= []; state.tutorialStep ??= 99; // 기존 마을은 튜토리얼 생략 state.coins ??= 0; + // 소급 지급: 이미 튜토리얼을 마쳤는데 정착 지원금을 못 받은 마을 + if ((state.tutorialStep ?? 0) >= 99 && !state.settleGrantGiven) { + state.coins += 200; + state.settleGrantGiven = true; + } if (state.happinessUnlocked === undefined) { const deckBuilt = state.buildings.some( (b) => b.type === "sun_deck" && b.constructionUntil === undefined, diff --git a/src/lib/game/types.ts b/src/lib/game/types.ts index 9560b3f..d7c68f7 100644 --- a/src/lib/game/types.ts +++ b/src/lib/game/types.ts @@ -77,6 +77,7 @@ export interface GameState { syncToken?: string; // 세이브 보호 토큰 happinessUnlocked?: boolean; // 행복도 시스템 해금 (회관 Lv3 + 햇볕 데크) happinessIntroSeen?: boolean; // 촌장 냥이 행복도 안내를 봤는가 + settleGrantGiven?: boolean; // 정착 지원금 지급 여부 decors?: DecoTile[]; // 꾸미기 바닥 타일 resources: Record; cats: Cat[];