public void HandleTargetsInRange(int numTargetsInRange) { if (numTargetsInRange > 0 && !isChasing) { isChasing = true; numChasersActive += 1; if (numChasersActive == 1) { // This means that the current chaser is the 1st to begin chasing Birdie FMODUnity.RuntimeManager.StudioSystem.setParameterByName("playerCaught", 1f); } OnSeePlayer?.Invoke(); } else if (numTargetsInRange == 0 && isChasing) { isChasing = false; if (numChasersActive > 0) { numChasersActive -= 1; if (numChasersActive == 0) { // This means that the current chaser is the last to stop chasing Birdie FMODUnity.RuntimeManager.StudioSystem.setParameterByName(playerChased, 0f); } } OnLosePlayer?.Invoke(); } }
public void SeeItemsOfInterest(List <IVisible> visibleItems) { LastSeenPlayer = null; LastSeenActionNode = null; LastSeenWorldItem = null; LastSeenItemOfInterest = null; for (int i = 0; i < visibleItems.Count; i++) { IVisible visibleItem = visibleItems[i]; if (CanSeeVisibleItem(visibleItem, true)) { switch (visibleItem.IOIType) { case ItemOfInterestType.Player: LastSeenPlayer = visibleItems[i].player; break; case ItemOfInterestType.WorldItem: LastSeenItemOfInterest = visibleItems[i].worlditem; break; case ItemOfInterestType.ActionNode: LastSeenActionNode = visibleItems[i].node; break; default: break; } LastSeenItemOfInterest = visibleItems[i]; } } if (LastSeenPlayer != null) { SawPlayerGizmo = 1f; OnSeePlayer.SafeInvoke(); } if (LastSeenItemOfInterest != null) { OnSeeWorldItem.SafeInvoke(); } if (LastSeenActionNode != null) { OnSeeActionNode.SafeInvoke(); } if (LastSeenItemOfInterest != null) { OnSeeItemOfInterest.SafeInvoke(); } }