예제 #1
0
 // Update is called once per frame
 public void Update()
 {
     if (user.GetComponent <EnemyHealth>().combat)
     {
         float distance = Vector3.Distance(user.transform.position, user.GetComponent <EnemyHealth>().Attacker.transform.position);
         int   i        = user.GetComponent <EnemyHealth>().Number;
         tuple = user.GetComponent <EnemyHealth>().Threat[i];
         LOS1  = user.GetComponent <LineOfSight>().LOS1[i];
         if ((Time.fixedTime - Timer) >= Cd && distance <= Range && LOS1)
         {
             if (!requestSent)
             {
                 target = tuple.player;
                 int targetHp = target.GetComponent <Stats>().Health;
                 inRange = Vector3.Distance(user.transform.position, target.transform.position) < Range;
                 Request = new Request(user, InRange, LOS1, Damage, distance, tuple.threat, targetHp, Range);
                 tokenManager.AddRequest(Request);
                 cost        = request.cost;
                 requestSent = true;
             }
             else
             {
                 if (Approved)
                 {
                     requestSent = false;
                     approved    = false;
                     Trigger();
                     Invoke("Return", Duration);
                     request = new Request();
                 }
             }
         }
     }
     elapsed = Time.fixedTime - Timer;
 }
예제 #2
0
    // Update is called once per frame
    public void Update()
    {
        //Debug.Log(Movement);


        if (user.GetComponent <EnemyHealth>().combat&& !requestSent && (Time.fixedTime - Timer) >= Cd)
        {
            float distance = Vector3.Distance(user.transform.position, user.GetComponent <EnemyHealth>().Attacker.transform.position);
            int   i        = user.GetComponent <EnemyHealth>().Number;
            tuple = user.GetComponent <EnemyHealth>().Threat[i];
            LOS1  = user.GetComponent <LineOfSight>().LOS1[i];
            //Debug.Log(distance);
            if (enemies.Count > 0 && LOS1)
            {
                Target = tuple.player;
                int targetHp = Target.GetComponent <Stats>().Health;
                inRange = Vector3.Distance(user.transform.position, Target.transform.position) < Range;
                //Request = Request(user, InRange, LOS1, Damage, distance, tuple.threat, targetHp, Range);
                request.requester = user;
                request.inRange   = inRange;
                request.LOS       = LOS1;
                request.toHit     = damage;
                request.distance  = distance;
                request.threat    = tuple.threat;
                request.targetHP  = targetHp;
                request.range     = Range;
                tokenManager.AddRequest(Request);
                //Debug.Log("Sending request");
                cost        = request.cost;
                requestSent = true;
            }
        }
        if (Approved)
        {
            requestSent = false;
            approved    = false;
            Trigger();
            Invoke("Return", Cd);
            request.Clear();
            InProcess = true;
        }
        elapsed = Time.fixedTime - Timer;
        if (melle)
        {
            AdjustCol();
        }
    }