Complete Update NPC AI
This commit is contained in:
@@ -31,10 +31,10 @@ namespace Hallucinate.AI
|
||||
private float nextRequestTime = 0f;
|
||||
|
||||
private string[] fallbackDialogues = {
|
||||
"{ \"text\": \"Nice weather, isn't it?\", \"speedMod\": 0.0, \"suspicionMod\": -5.0 }",
|
||||
"{ \"text\": \"Did you hear something? Probably just a rat.\", \"speedMod\": 0.0, \"suspicionMod\": 2.0 }",
|
||||
"{ \"text\": \"I'm so tired of this shift.\", \"speedMod\": -0.1, \"suspicionMod\": 0.0 }",
|
||||
"{ \"text\": \"Don't forget the coffee break later.\", \"speedMod\": 0.0, \"suspicionMod\": -2.0 }"
|
||||
"{ \"text\": \"Nice weather, isn't it?\", \"speedMod\": 0.0, \"suspicionMod\": -5.0, \"aggressionMod\": 0.0, \"braveryMod\": 0.0, \"healthMod\": 0.0 }",
|
||||
"{ \"text\": \"Did you hear something? Probably just a rat.\", \"speedMod\": 0.0, \"suspicionMod\": 2.0, \"aggressionMod\": 0.1, \"braveryMod\": -5.0, \"healthMod\": 0.0 }",
|
||||
"{ \"text\": \"I'm so tired of this shift.\", \"speedMod\": -0.2, \"suspicionMod\": 0.0, \"aggressionMod\": -0.1, \"braveryMod\": 5.0, \"healthMod\": 0.0 }",
|
||||
"{ \"text\": \"You looks strong, I should be careful.\", \"speedMod\": 0.1, \"suspicionMod\": 5.0, \"aggressionMod\": -0.2, \"braveryMod\": 10.0, \"healthMod\": 0.0 }"
|
||||
};
|
||||
|
||||
private void Awake()
|
||||
@@ -72,7 +72,15 @@ namespace Hallucinate.AI
|
||||
{
|
||||
activeRequests++;
|
||||
|
||||
string jsonInstruction = " Respond ONLY with a JSON object: { 'text': 'your dialogue', 'speedMod': 0.0, 'suspicionMod': 0.0 }.";
|
||||
string jsonInstruction = " Respond ONLY with a JSON object: { " +
|
||||
"'text': 'dialogue content', " +
|
||||
"'speedMod': 0.0 (change movement speed), " +
|
||||
"'suspicionMod': 0.0 (change suspicion level), " +
|
||||
"'aggressionMod': 0.0 (0.1 to 0.5 makes NPC shoot faster, negative makes them slower), " +
|
||||
"'braveryMod': 0.0 (positive makes them less likely to panic, negative makes them scared), " +
|
||||
"'healthMod': 0.0 (positive heals NPC, negative damages them) " +
|
||||
"}. Keep values realistic.";
|
||||
|
||||
string escapedPersona = persona.Replace("\"", "\\\"");
|
||||
string escapedPrompt = prompt.Replace("\"", "\\\"");
|
||||
|
||||
@@ -80,8 +88,8 @@ namespace Hallucinate.AI
|
||||
""systemInstruction"": {{""parts"": [{{ ""text"": ""{escapedPersona} {jsonInstruction}"" }}]}},
|
||||
""contents"": [{{""parts"": [{{ ""text"": ""{escapedPrompt}"" }}]}}],
|
||||
""generationConfig"": {{
|
||||
""maxOutputTokens"": 100,
|
||||
""temperature"": 0.7,
|
||||
""maxOutputTokens"": 150,
|
||||
""temperature"": 0.8,
|
||||
""responseMimeType"": ""application/json""
|
||||
}}
|
||||
}}";
|
||||
@@ -110,8 +118,7 @@ namespace Hallucinate.AI
|
||||
Debug.LogError($"[Gemini] API Error: {request.error}");
|
||||
if (request.responseCode == 429)
|
||||
{
|
||||
nextRequestTime = Time.time + 60f; // Lock API for 1 minute
|
||||
Debug.LogWarning("Quota Exceeded. API locked for 60s. Using fallback.");
|
||||
nextRequestTime = Time.time + 60f;
|
||||
}
|
||||
onComplete?.Invoke(fallbackDialogues[UnityEngine.Random.Range(0, fallbackDialogues.Length)]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user