Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }