Fixed a bug where crow switching wont turn off the crows foresight

dev-hazim
Hazim Bin Ijaz 1 week ago
parent 50ccadf4cf
commit 560c62ad2d

@ -154,6 +154,7 @@ public class AbilitySystem : NetworkBehaviour
if (Input.GetMouseButtonUp(0)) if (Input.GetMouseButtonUp(0))
{ {
UseActiveAbility(); UseActiveAbility();
lineIndicator.positionCount = 0;
lineIndicator.gameObject.SetActive(false); lineIndicator.gameObject.SetActive(false);
} }
} }

@ -11,6 +11,7 @@ public class CrowManager : NetworkBehaviour
private List<ServerCharacter> players = new List<ServerCharacter>(); private List<ServerCharacter> players = new List<ServerCharacter>();
private ServerCharacter currentCrow; private ServerCharacter currentCrow;
public GameObject activeForesight;
private void Awake() private void Awake()
{ {
@ -88,6 +89,11 @@ public class CrowManager : NetworkBehaviour
if (currentCrow != null) if (currentCrow != null)
{ {
currentCrow.Movement.SetSpeedModifier(1f); currentCrow.Movement.SetSpeedModifier(1f);
var foresightPrefab = FindObjectOfType<CrowsForesightPrefab>();
if (foresightPrefab)
{
foresightPrefab.DespawnForesight();
}
currentCrow.SetAsCrow(false); // Clear old crow currentCrow.SetAsCrow(false); // Clear old crow
} }
@ -136,19 +142,19 @@ public class CrowManager : NetworkBehaviour
} }
else else
{ {
// If a player was the crow but is now losing it, request foresight removal // // If a player was the crow but is now losing it, request foresight removal
if (player.IsCrow) // if (player.IsCrow)
{ // {
Debug.Log($"[CrowManager] {player.name} is no longer the Crow. Requesting foresight removal."); // Debug.Log($"[CrowManager] {player.name} is no longer the Crow. Requesting foresight removal.");
if (IsServer) // if (IsServer)
{ // {
var foresightPrefab = FindObjectOfType<CrowsForesightPrefab>(); // var foresightPrefab = FindObjectOfType<CrowsForesightPrefab>();
if (foresightPrefab) // if (foresightPrefab)
{ // {
foresightPrefab.DespawnForesight(); // foresightPrefab.DespawnForesight();
} // }
} // }
} // }
player.SetAsCrow(false); player.SetAsCrow(false);
player.SwitchToPlayerModel(); player.SwitchToPlayerModel();
@ -275,34 +281,5 @@ public class CrowManager : NetworkBehaviour
} }
[Rpc(SendTo.Everyone)]
private void NotifySwapForesightAcceptedClientRpc(ulong senderId, Vector3 receiverPos)
{
Debug.Log($"[CrowManager] NotifySwapForesightAcceptedClientRpc received - Sender: {senderId}, ReceiverPos: {receiverPos}");
if (currentCrow == null)
{
Debug.LogError("[CrowManager] Error: Current Crow is null!");
return;
}
if (currentCrow.clientCharacter == null)
{
Debug.LogError("[CrowManager] Error: Current Crow clientCharacter is null!");
return;
}
var foresightPrefab = FindObjectOfType<CrowsForesightPrefab>();
if (foresightPrefab == null)
{
Debug.LogError("[CrowManager] Error: CrowsForesightPrefab not found on Crow!");
return;
}
foresightPrefab.OnSwapAccepted(senderId, receiverPos);
}
} }

Loading…
Cancel
Save