// portfolio/npc_social_network/static/js/npc_chat.js async function sendMessage() { const userMessage = document.getElementById("message").value; const npc = document.getElementById("npc").value; const responseBox = document.getElementById("chatBox"); if (userMessage.trim() == "") return; // UI에 유저 메시지 추가 responseBox.innerHTML += `
`; document.getElementById("message").value = ""; // 서버에 메시지 전송 const response = await fetch('/npc_social_network/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: userMessage, npc: npc }) }); const data = await response.json(); // NPC 응답 출력 responseBox.innerHTML += ` `; // 감정 summary 표시 (채팅창에 출력) responseBox.innerHTML += ` `; // 관계 상태 업데이트 (상단 #relationStatus에 표시) document.getElementById("relationStatus").innerText = `관계 점수: ${data.relationship_with_player}`; // Personality 상태 업데이트 const personalityStatusElem = document.getElementById("personalityStatus"); personalityStatusElem.innerHTML = ""; // 초기화 for (const [key, value] of Object.entries(data.personality)) { const li = document.createElement("li"); li.textContent = `${key}: ${value.toFixed(2)}`; personalityStatusElem.appendChild(li); } // 스크롤 하단 고정 responseBox.scrollTop = responseBox.scrollHeight; } // NPC 정보 로드 (NPC 선택 변경 시 관계 점수 업데이트용) async function loadNPCInfo() { const npc = document.getElementById("npc").value; const response = await fetch(`/npc_social_network/npc_info?npc=${encodeURIComponent(npc)}`); const data = await response.json(); // 관계 상태 업데이트 document.getElementById("relationStatus").innerText = `관계 점수: ${data.relationship_with_player}`; // Personality 상태 업데이트 const personalityStatusElem = document.getElementById("personalityStatus"); personalityStatusElem.innerHTML = ""; // 초기화 for (const [key, value] of Object.entries(data.personality)) { const li = document.createElement("li"); li.textContent = `${key}: ${value.toFixed(2)}`; personalityStatusElem.appendChild(li); } } // 버튼 클릭 시 NPC 상호작용 수동 실행 async function triggerNPCInteractions() { const response = await fetch('/npc_social_network/trigger_npc_interactions', { method: 'POST' }); const data = await response.json(); console.log(data.status); // 콘솔 확인용 } // NPC 기억 로드 async function loadNPCMemory() { const npc = document.getElementById("npc").value; const response = await fetch(`/npc_social_network/npc_memory?npc=${encodeURIComponent(npc)}`); const data = await response.json(); const memoryListElem = document.getElementById("memoryList"); memoryListElem.innerHTML = ""; // 초기화 if (data.memory_list.length === 0) { memoryListElem.innerHTML = "