private void Awake() { Debug.Log("Radar sender awoken for object " + gameObject.name); lr = gameObject.GetComponentInChildren <LockingRadar>(); if (lr == null) { Debug.LogError($"LockingRadar on networkUID {networkUID} is null"); return; } lr.radar = gameObject.GetComponentInChildren <Radar>(); if (lr.radar == null) { Debug.LogError($"Radar null on netUID {networkUID}"); } else { lr.radar.OnDetectedActor += RadarDetectedActor; // Debug.Log($"Radar sender successfully attached to object {gameObject.name}."); } controller = gameObject.GetComponentInChildren <TacticalSituationController>(); if (controller != null) { Debug.Log($"{networkUID} is a player F45."); controller.OnAutoRadarLocked += F45LockedUpdate; controller.OnAutoRadarUnlocked += F45UnlockedUpdate; } lastRadarMessage = new Message_RadarUpdate(true, 0, networkUID); lastLockingMessage = new Message_LockingRadarUpdate(0, false, networkUID); }
public void LockingRadarUpdate(Packet packet) { lastLockingMessage = (Message_LockingRadarUpdate)((PacketSingle)packet).message; // Debug.Log("Got a new locking radar update intended for id " + lastLockingMessage.senderUID); if (lastLockingMessage.senderUID != networkUID) { return; } if (lockingRadar == null) { Debug.Log($"Locking radar on networkUID {networkUID} is null."); return; } if (lockingRadar.radar == null) { lockingRadar.radar = gameObject.GetComponentInChildren <Radar>(); if (lockingRadar.radar == null) { Debug.Log($"Radar was null on network uID {networkUID}"); } } if (!lockingRadar.radar.radarEnabled) { lockingRadar.radar.radarEnabled = true; } Debug.Log($"Doing LockingRadarupdate for uid {networkUID} which is intended for uID {lastLockingMessage.senderUID}"); if (!lastLockingMessage.isLocked && lockingRadar.IsLocked()) { Debug.Log("Unlocking radar " + gameObject.name); lockingRadar.Unlock(); lastLock = 0; lastLocked = false; return; } else if (lastLockingMessage.actorUID != lastLock || (lastLockingMessage.isLocked && !lockingRadar.IsLocked())) { Debug.Log("Trying to lock radar."); if (VTOLVR_Multiplayer.AIDictionaries.allActors.TryGetValue(lastLockingMessage.actorUID, out lastActor)) { if (gameObject.name == null) { Debug.Log($"Radar {networkUID} found its lock " + lastActor.name + $" with an id of {lastLock} while trying to lock id {lastLockingMessage.actorUID}. Trying to force a lock."); } else { Debug.Log($"Radar " + gameObject.name + " found its lock " + lastActor.name + $" with an id of {lastLock} while trying to lock id {lastLockingMessage.actorUID}. Trying to force a lock."); } lockingRadar.ForceLock(lastActor, out radarLockData); lastLock = lastLockingMessage.actorUID; lastLocked = true; Debug.Log($"The lock data is Locked: {radarLockData.locked}, Locked Actor: " + radarLockData.actor.name); } else { Debug.Log($"Could not resolve a lock on uID {lastLockingMessage.actorUID} from sender {lastLockingMessage.senderUID}."); } } }