Projext/Assets/Scripts/Obsession/ObsessionTester.cs

95 lines
4.0 KiB
C#
Raw Normal View History

2026-02-10 08:04:33 +00:00
using UnityEngine;
public class ObsessionTester : MonoBehaviour
{
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 🧪 이 스크립트는 테스트용입니다!
2026-02-22 13:37:34 +00:00
// 프리팹이나 몬스터가 없어도 키보드로 XP 시스템 전체 흐름을 테스트할 수 있어요.
2026-02-10 08:04:33 +00:00
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
private void Start()
{
Debug.Log("========================================");
2026-02-22 13:37:34 +00:00
Debug.Log("🧪 [테스트 모드 - 최신 룰 적용] 키보드 조작법:");
Debug.Log(" [1] 몹 처치 (+5 런XP)");
Debug.Log(" [2] 방 클리어 (+20 런XP & 클리어 횟수 증가)");
Debug.Log(" [3] 무피격 방 보너스 (+10 런XP)");
Debug.Log(" [4] 보스 처치 (+100 런XP)");
Debug.Log(" [5] 💀 사망 시뮬레이션 (사망 보너스 + 영구 XP 전환)");
Debug.Log(" [6] 📊 현재 상태 확인");
Debug.Log(" [0] 🗑️ 저장 데이터 초기화");
2026-02-10 08:04:33 +00:00
Debug.Log("========================================");
}
private void Update()
{
// ObsessionSystem이 없으면 테스트 불가
if (ObsessionSystem.instance == null)
{
if (Input.anyKeyDown)
{
2026-02-22 13:37:34 +00:00
Debug.LogError("❌ ObsessionSystem이 씬에 없어요! GameManager에 추가하세요.");
2026-02-10 08:04:33 +00:00
}
return;
}
2026-02-22 13:37:34 +00:00
// [1] 몹 1마리 처치 시뮬레이션 (+5 XP)
2026-02-10 08:04:33 +00:00
if (Input.GetKeyDown(KeyCode.Alpha1))
{
2026-02-22 13:37:34 +00:00
ObsessionSystem.instance.AddRunXP(5);
Debug.Log("⚔️ [테스트] 몹 처치! +5 런 XP");
2026-02-10 08:04:33 +00:00
}
2026-02-22 13:37:34 +00:00
// [2] 방 클리어 시뮬레이션
2026-02-10 08:04:33 +00:00
if (Input.GetKeyDown(KeyCode.Alpha2))
{
2026-02-22 13:37:34 +00:00
ObsessionSystem.instance.NotifyRoomCleared();
ObsessionSystem.instance.AddStageClearXP(20);
Debug.Log("🚪 [테스트] 방 클리어! +20 런 XP");
2026-02-10 08:04:33 +00:00
}
2026-02-22 13:37:34 +00:00
// [3] 무피격 방 클리어 보너스 시뮬레이션
2026-02-10 08:04:33 +00:00
if (Input.GetKeyDown(KeyCode.Alpha3))
{
2026-02-22 13:37:34 +00:00
ObsessionSystem.instance.AddPerfectClearXP(10);
Debug.Log("🛡️ [테스트] 무피격 보너스! +10 런 XP");
2026-02-10 08:04:33 +00:00
}
2026-02-22 13:37:34 +00:00
// [4] 보스 처치 시뮬레이션
2026-02-10 08:04:33 +00:00
if (Input.GetKeyDown(KeyCode.Alpha4))
{
2026-02-22 13:37:34 +00:00
ObsessionSystem.instance.AddBossKillXP(100);
Debug.Log("👑 [테스트] 보스 처치! +100 런 XP");
2026-02-10 08:04:33 +00:00
}
2026-02-22 13:37:34 +00:00
// [5] 사망 시뮬레이션
2026-02-10 08:04:33 +00:00
if (Input.GetKeyDown(KeyCode.Alpha5))
2026-02-22 13:37:34 +00:00
{
Debug.Log("💀 [테스트] 사망! 런 XP를 영구 XP로 전환합니다...");
ObsessionSystem.instance.OnDeathConvertXP();
}
// [6] 상태 확인 (오류 발생 지점 수정)
if (Input.GetKeyDown(KeyCode.Alpha6))
2026-02-10 08:04:33 +00:00
{
Debug.Log("========================================");
Debug.Log("📊 [현재 상태]");
2026-02-22 13:37:34 +00:00
// [수정] 보간 문자열($) 내부의 변수 출력 방식을 안전하게 재작성했습니다.
// 기존 코드의 특수 공백이나 인식 불가능한 문자를 제거했습니다.
Debug.Log($"이번 런 XP: {ObsessionSystem.instance.GetCurrentRunXP()}");
Debug.Log($"이번 런 방 클리어 수: {ObsessionSystem.instance.GetClearedRoomsThisRun()} 개");
Debug.Log($"계정 영구 XP: {ObsessionSystem.instance.GetCurrentXP()}");
Debug.Log($"계정 레벨: {ObsessionSystem.instance.GetCurrentLevel()}");
2026-02-10 08:04:33 +00:00
Debug.Log("========================================");
}
2026-02-22 13:37:34 +00:00
// [0] 초기화
2026-02-10 08:04:33 +00:00
if (Input.GetKeyDown(KeyCode.Alpha0))
{
PlayerPrefs.DeleteAll();
2026-02-22 13:37:34 +00:00
Debug.Log("🗑️ [테스트] 모든 저장 데이터 삭제! (정상 적용을 위해 게임을 껐다 켜주세요)");
2026-02-10 08:04:33 +00:00
}
}
2026-02-22 13:37:34 +00:00
}