public static Vector2 GetClosestPickup(List <PickupActivator> activePickups, int activeCount, GameObject player)
    {
        /* This method checks if there are any active pickups in the game by getting an active pickup list
         * from the main pickup list controller. Then it checks which one is the closest
         * and returns its position as a vector.
         */
        PickupActivator closestPickup   = null;
        float           closestDistance = 100;

        if (activeCount > 0)
        {
            for (int i = 0; i < activeCount; i++)
            {
                float distance = AICalculate.CalculateLengthBetween(player, activePickups[i].GetComponent <Transform>().position.x, activePickups[i].GetComponent <Transform>().position.y);
                if (distance < closestDistance)
                {
                    closestDistance = distance;
                    closestPickup   = activePickups[i];
                }
            }
        }

        if (closestPickup == null)
        {
            return(new Vector2(0, 0));
        }
        return(new Vector2(closestPickup.GetComponent <Transform>().position.x, closestPickup.GetComponent <Transform>().position.y));
    }
Пример #2
0
    public void LateUpdate()
    {
        List <PickupActivator> pickupList = pickupControl.pickupList.GetAvailablePickups();

        PickupActivator activator = null;

        if (pickupControl.pickupList.GetAvailableCount() > 3 && pickupControl.pickupTimer.GetTimeLeft() < 0)
        {
            activator = pickupList[Random.Range(0, pickupList.Count)];
            activator.Activate();
            pickupControl.pickupTimer.ResetTimer();
        }
    }
Пример #3
0
 public void MakeUnavailable(PickupActivator pickup)
 {
     pickupList.Remove(pickup);
     activeList.Add(pickup);
 }