Beispiel #1
0
    public void GoToQueue()
    {
        aiCharacterControl.agent.speed            = randomWalkSpeed;
        aiCharacterControl.agent.stoppingDistance = 0.3f;
        if (!cashBox.fullQueue && cashBox.ready)
        {
            aiCharacterControl.target = cashBox.freeTargetInQueue.transform;


            float remainingDistance = Vector3.Distance(transform.position, aiCharacterControl.target.transform.position);
            if (remainingDistance <= 8f)
            {
                cashBox.CalculateQueue();
            }
            if (remainingDistance <= 0.5f)
            {
                inQueue = true;
                cashBox.AddBuyerToQueue(this);
                aiCharacterControl.target = null;
            }
            //очередь заняли пока шел
        }
        else
        {
            aiCharacterControl.agent.stoppingDistance = randomDistance;
            aiCharacterControl.target = null;
            aiCharacterControl.agent.ResetPath();
            FindWorkingCashBox();
            ResetTimer();
        }
    }
Beispiel #2
0
 public void ResetWorkPlace()
 {
     Debug.Log("reset workplace on " + gameObject.name);
     if (cashBoxObject)
     {
         cashBox.haveCashier = false;
         cashBox.ready       = false;
         stayingAtCashBox    = false;
         readyToSell         = false;
         cashBox.ClearQueue();
         cashBox.CalculateQueue();
         cashBox                = null;
         cashBoxObject          = null;
         minimalDistanceCashBox = null;
     }
     gameController.CalcCashboxes();
 }