[WL-816] 게임 시작마다 섬 세이브 초기화(resetSaveEveryStart 1) + 몬스터 공격 예고 바닥 판 off(decalEnabled 0) (PD 2026-09-15 · #816)

- WLIslandSave.Prepare: resetSaveEveryStart 면 실행 1회당 1번 세이브 삭제·던전 해금 0·보류 보상 0(던전→섬 복귀 시엔 아님). 되돌리기 = 0.
- WLTelegraphSettings.asset decalEnabled 1→0 (값만).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-09-15 01:18:59 +09:00
parent 546ea28b43
commit d32399fa0b
4 changed files with 15 additions and 4 deletions

View File

@ -27,7 +27,7 @@ MonoBehaviour:
defaultHitSeconds: 0.16 defaultHitSeconds: 0.16
correctFromLiveClip: 1 correctFromLiveClip: 1
maxTelegraphSeconds: 2.5 maxTelegraphSeconds: 2.5
decalEnabled: 1 decalEnabled: 0
maxConcurrent: 6 maxConcurrent: 6
poolWarmCount: 8 poolWarmCount: 8
groundYOffset: 0.06 groundYOffset: 0.06

View File

@ -78,6 +78,7 @@ MonoBehaviour:
applyStartCoin: 1 applyStartCoin: 1
startCoin: 10 startCoin: 10
saveResetToken: 816g-1 saveResetToken: 816g-1
resetSaveEveryStart: 1
dungeonCameraMatchIsland: 1 dungeonCameraMatchIsland: 1
camPitch: 45 camPitch: 45
camYaw: 0 camYaw: 0

View File

@ -60,6 +60,7 @@ namespace WL.Island
const string kTokenKey = "WL_Island_SaveToken"; const string kTokenKey = "WL_Island_SaveToken";
static System.Reflection.FieldInfo s_startingMoney; static System.Reflection.FieldInfo s_startingMoney;
static bool s_resetDoneThisRun; // 2026-09-15 PD — 실행(Play) 1회당 1번만 초기화
/// <summary>`IslandManager.Awake` 안(= `LoadGameData()` 직전)에서 단 한 번 불린다.</summary> /// <summary>`IslandManager.Awake` 안(= `LoadGameData()` 직전)에서 단 한 번 불린다.</summary>
public static void Prepare(string saveName) public static void Prepare(string saveName)
@ -67,10 +68,14 @@ namespace WL.Island
var cfg = WLIslandSettings.Instance; var cfg = WLIslandSettings.Instance;
if (cfg == null || cfg.enabled_ == 0 || cfg.gateFlowEnabled == 0) return; if (cfg == null || cfg.enabled_ == 0 || cfg.gateFlowEnabled == 0) return;
// ① 세이브 1회 초기화 — 토큰이 바뀌었을 때만(PD 에게 새 초기 상태를 보여 줄 때) // ① 세이브 초기화 — 토큰이 바뀌었을 때(1회) · 또는 `resetSaveEveryStart` 면 **게임 시작마다**(실행 1회당 1번 ·
if (!string.IsNullOrEmpty(cfg.saveResetToken) && // 던전에서 섬으로 돌아올 때는 아님 · 2026-09-15 PD 「내가 얘기하기 전까지 매번 초기화 상태에서 시작」)
PlayerPrefs.GetString(kTokenKey, "") != cfg.saveResetToken) bool everyStart = cfg.resetSaveEveryStart != 0 && !s_resetDoneThisRun;
if (everyStart ||
(!string.IsNullOrEmpty(cfg.saveResetToken) &&
PlayerPrefs.GetString(kTokenKey, "") != cfg.saveResetToken))
{ {
s_resetDoneThisRun = true;
try try
{ {
string path = Application.persistentDataPath + "/" + saveName + ".dat"; string path = Application.persistentDataPath + "/" + saveName + ".dat";

View File

@ -313,6 +313,11 @@ namespace WL.Island
"비우면 아무것도 지우지 않는다. PD 에게 새 상태를 보여 줄 때 값을 바꾼다.")] "비우면 아무것도 지우지 않는다. PD 에게 새 상태를 보여 줄 때 값을 바꾼다.")]
public string saveResetToken = "816g-1"; public string saveResetToken = "816g-1";
[Tooltip("🔴 1 이면 **게임을 시작할 때마다**(Play/앱 실행 1회당 1번 · 던전에서 섬으로 돌아올 때는 아님) 섬 세이브·던전 해금·보류 보상을 " +
"전부 지우고 시작 골드부터 다시 시작한다 — 2026-09-15 PD 「내가 얘기하기 전까지는 게임 시작 시 매번 초기화된 상태에서 시작」" +
"(초반 Flow 구성 예정). 0 = 세이브 유지(토큰 1회 초기화만).")]
public int resetSaveEveryStart = 1;
// ───────────────────────────────── WL-816i · 카메라 구도 고정 // ───────────────────────────────── WL-816i · 카메라 구도 고정
// PD 「카메라 구도는 섬에서 조작할 때의 각도와 뷰를 말한거야. 전장에 진입해도 바뀌지 않아야 하기 때문」 // PD 「카메라 구도는 섬에서 조작할 때의 각도와 뷰를 말한거야. 전장에 진입해도 바뀌지 않아야 하기 때문」
// → 기준은 **섬**. 아래 기본값은 섬(FI) 카메라 실측값 그대로다. // → 기준은 **섬**. 아래 기본값은 섬(FI) 카메라 실측값 그대로다.