using System.Text; using UnityEngine; public class StoryComputerSystem : MonoBehaviour { [Header("Computer State")] [SerializeField] private bool isPowerOn = false; [Header("Affection Check Characters")] [SerializeField] private CharacterData[] characters; public bool IsPowerOn => isPowerOn; public void TogglePower() { isPowerOn = !isPowerOn; Debug.Log(isPowerOn ? "[StoryComputer] ÄÄÇ»ÅÍ Àü¿øÀÌ ÄÑÁ³½À´Ï´Ù." : "[StoryComputer] ÄÄÇ»ÅÍ Àü¿øÀÌ ²¨Á³½À´Ï´Ù."); if (isPowerOn) { PrintCurrentState(); } } public void SaveFromComputer() { if (!CanUseComputer()) return; StoryManager.Instance.Save(); Debug.Log("[StoryComputer] ÇöÀç ½ºÅ丮 »óŸ¦ ÀúÀåÇß½À´Ï´Ù."); } public void LoadFromComputer() { if (!CanUseComputer()) return; bool success = StoryManager.Instance.Load(); if (success) { Debug.Log("[StoryComputer] ÀúÀåµÈ ½ºÅ丮 »óŸ¦ ºÒ·¯¿Ô½À´Ï´Ù."); PrintCurrentState(); } else { Debug.LogWarning("[StoryComputer] ºÒ·¯¿Ã ÀúÀå ÆÄÀÏÀÌ ¾ø½À´Ï´Ù."); } } public void ResetStoryFromComputer() { if (!CanUseComputer()) return; StoryManager.Instance.ResetAll(); Debug.Log("[StoryComputer] ½ºÅ丮 »óŸ¦ ÃʱâÈ­Çß½À´Ï´Ù."); PrintCurrentState(); } public void PrintCurrentState() { if (StoryManager.Instance == null) { Debug.LogWarning("[StoryComputer] StoryManager°¡ ¾ø½À´Ï´Ù."); return; } StringBuilder sb = new StringBuilder(); sb.AppendLine("========== ÇöÀç ½ºÅ丮 »óÅ =========="); sb.AppendLine($"¸ÞÀÎ ÁøÇ൵: {StoryManager.Instance.MainProgress}"); sb.AppendLine(); sb.AppendLine("°ø·æº° È£°¨µµ:"); if (characters == null || characters.Length == 0) { sb.AppendLine("- µî·ÏµÈ ij¸¯ÅÍ ¾øÀ½"); } else { foreach (CharacterData character in characters) { if (character == null) continue; int affection = StoryManager.Instance.GetAffection(character); sb.AppendLine($"- {character.name}: {affection}"); } } sb.AppendLine("===================================="); Debug.Log(sb.ToString()); } private bool CanUseComputer() { if (!isPowerOn) { Debug.LogWarning("[StoryComputer] ÄÄÇ»ÅÍ Àü¿øÀÌ ²¨Á® À־ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù."); return false; } if (StoryManager.Instance == null) { Debug.LogWarning("[StoryComputer] StoryManager°¡ ¾À¿¡ ¾ø½À´Ï´Ù."); return false; } return true; } [ContextMenu("TEST / Power Toggle")] private void TestPowerToggle() { TogglePower(); } [ContextMenu("TEST / Save")] private void TestSave() { SaveFromComputer(); } [ContextMenu("TEST / Load")] private void TestLoad() { LoadFromComputer(); } [ContextMenu("TEST / Reset Story")] private void TestReset() { ResetStoryFromComputer(); } [ContextMenu("TEST / Print State")] private void TestPrintState() { PrintCurrentState(); } }