마을 초기화 버튼 (회관 패널)
- engine.reset(): 세이브 삭제 + 새 게임 상태로 즉시 전환 (튜토리얼부터) - 회관 패널 하단에 확인 창 포함 초기화 버튼 - 콘솔에서 localStorage만 지우면 5초 자동 저장이 되살리는 문제의 정식 해법 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
이 커밋은 다음에 포함됨:
@@ -375,6 +375,16 @@ export default function Game() {
|
||||
state={state}
|
||||
onUpgrade={() => run(() => engine.upgradeHall())}
|
||||
highlightUpgrade={tutTarget === "hall-upgrade"}
|
||||
onReset={() => {
|
||||
if (
|
||||
window.confirm(
|
||||
"정말 마을을 초기화할까요? 고양이·건물·자원이 모두 사라지고 처음부터 시작합니다.",
|
||||
)
|
||||
) {
|
||||
dispatch(() => engine.reset());
|
||||
setPanel(null);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</SidePanel>
|
||||
)}
|
||||
@@ -528,10 +538,12 @@ function HallPanel({
|
||||
state,
|
||||
onUpgrade,
|
||||
highlightUpgrade,
|
||||
onReset,
|
||||
}: {
|
||||
state: GameState;
|
||||
onUpgrade: () => void;
|
||||
highlightUpgrade?: boolean;
|
||||
onReset: () => void;
|
||||
}) {
|
||||
const next = HALL_LEVELS[state.hall.level + 1];
|
||||
return (
|
||||
@@ -601,8 +613,17 @@ function HallPanel({
|
||||
)}
|
||||
</div>
|
||||
) : (
|
||||
<p className="text-sm text-gray-400">회관이 최고 레벨입니다.</p>
|
||||
<p className="text-sm text-[#a3906c]">회관이 최고 레벨입니다.</p>
|
||||
)}
|
||||
|
||||
<div className="border-t border-dashed border-[rgba(126,95,48,.3)] pt-3">
|
||||
<button
|
||||
onClick={onReset}
|
||||
className="w-full rounded-lg border border-[rgba(176,71,42,.4)] bg-[rgba(214,106,74,.08)] py-2 text-xs text-[#b0472a] hover:bg-[rgba(214,106,74,.16)]"
|
||||
>
|
||||
🗑 마을 초기화 (새 게임 시작 — 되돌릴 수 없어요)
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
새 이슈에서 참조
사용자 차단