fix: remove extra closing brace in GameManager.cs

Remove duplicate } at line 504 that was breaking the class structure
and causing CS1022 compilation error.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
empty
2026-01-02 02:38:06 +08:00
parent 5476260efa
commit 9d248f2cdb

View File

@@ -158,6 +158,9 @@ namespace TheIsland.Core
network.OnGiftEffect += HandleGiftEffect; // Phase 8
network.OnAgentAction += HandleAgentAction; // Phase 13
network.OnRandomEvent += HandleRandomEvent; // Phase 17-C
network.OnGiveItem += HandleGiveItem; // Phase 23
network.OnGroupActivity += HandleGroupActivity; // Phase 24
network.OnVFXEvent += HandleVFXEvent; // Phase 8
}
private void UnsubscribeFromNetworkEvents()
@@ -186,6 +189,9 @@ namespace TheIsland.Core
network.OnSocialInteraction -= HandleSocialInteraction;
network.OnGiftEffect -= HandleGiftEffect; // Phase 8
network.OnRandomEvent -= HandleRandomEvent; // Phase 17-C
network.OnGiveItem -= HandleGiveItem; // Phase 23
network.OnGroupActivity -= HandleGroupActivity; // Phase 24
network.OnVFXEvent -= HandleVFXEvent; // Phase 8
}
#endregion
@@ -447,10 +453,84 @@ namespace TheIsland.Core
_playerGold = data.user_gold;
UpdateGoldDisplay();
}
ShowNotification(data.message);
}
private void HandleGiveItem(GiveItemEventData data)
{
Debug.Log($"[GameManager] Give Item: {data.message}");
ShowNotification(data.message);
if (_agentVisuals.TryGetValue(data.from_id, out AgentVisual fromVisual) &&
_agentVisuals.TryGetValue(data.to_id, out AgentVisual toVisual))
{
// Trigger Visual Effect (Phase 23)
// We assume AgentVisual has DoGiveItem method
fromVisual.DoGiveItem(toVisual.transform, data.item_type);
}
}
private void HandleGroupActivity(GroupActivityEventData data)
{
Debug.Log($"[GameManager] Group Activity: {data.activity_type} with {data.storyteller_name}");
if (data.activity_type == "storytelling")
{
ShowNotification($"🔥 {data.storyteller_name} tells a story about {data.topic}...");
// Storyteller Visuals
if (_agentVisuals.TryGetValue(data.storyteller_id, out AgentVisual storyteller))
{
storyteller.ShowSpeech(data.content, 8f); // Long duration for story
storyteller.DoStorytelling(); // Animation trigger
}
// Listener Visuals
if (data.listener_ids != null)
{
foreach (int listenerId in data.listener_ids)
{
if (_agentVisuals.TryGetValue(listenerId, out AgentVisual listener))
{
// Listeners face the storyteller and show interest
if (storyteller != null)
{
listener.DoListen(storyteller.transform);
}
}
}
}
}
}
private void HandleVFXEvent(VFXEventData data)
{
Debug.Log($"[GameManager] VFX: {data.effect}");
if (!string.IsNullOrEmpty(data.message))
{
ShowNotification(data.message);
}
Vector3 targetPos = new Vector3(0, 2, 0); // Default air center
if (data.target_id > 0)
{
if (_agentVisuals.TryGetValue(data.target_id, out AgentVisual visual))
{
targetPos = visual.transform.position;
}
else if (_agentUIs.TryGetValue(data.target_id, out AgentUI ui))
{
targetPos = ui.transform.position;
}
}
if (VFXManager.Instance != null)
{
VFXManager.Instance.PlayEffect(data.effect, targetPos);
}
}
private void HandleTalk(TalkEventData data)
{
Debug.Log($"[GameManager] Talk event: {data.agent_name} responds about '{data.topic}'");
@@ -553,7 +633,22 @@ namespace TheIsland.Core
// Find agent and command movement
if (_agentVisuals.TryGetValue(data.agent_id, out AgentVisual agentVisual))
{
agentVisual.MoveTo(targetPos);
// Phase 21-C: Handle Follow/Target Logic
if (data.action_type == "Follow" && !string.IsNullOrEmpty(data.target_name))
{
int targetId = GetAgentIdByName(data.target_name);
if (targetId >= 0 && _agentVisuals.TryGetValue(targetId, out AgentVisual targetVisual))
{
agentVisual.SetFollowTarget(targetVisual.transform);
Debug.Log($"[GameManager] {data.agent_name} is now following {data.target_name}");
}
}
else
{
// Clear follow target for non-follow actions
agentVisual.SetFollowTarget(null);
agentVisual.MoveTo(targetPos);
}
// Optional: Show thought bubble or speech
if (!string.IsNullOrEmpty(data.dialogue))