Beispiel #1
0
 void GetCandidates()
 {
     candidates.Clear();
     for (int i = 0; i < coverColliders.Length; i++)
     {
         GOS currentCover = coverColliders[i].gameObject.GetComponent <GOS>();
         for (int j = 0; j < 8; j++)
         {
             if (currentCover.possibilities[j] == emptySlot || currentCover.possibilities[j] == unit.gameObject.GetInstanceID())
             {
                 CoverSpotCandidate newCandidate = new CoverSpotCandidate(currentCover.coordinates[j]);
                 candidates.Add(newCandidate);
             }
         }
     }
 }
Beispiel #2
0
    void EliminatePossibilitiesByDistance(GOS cover)
    {
        bool closeEnough;

        for (int i = 0; i < cover.coordinates.Count; i++)
        {
            closeEnough = false;
            for (int j = 0; j < unit.enemies.Count; j++)
            {
                if ((cover.coordinates[i] - unit.enemies[j].position).magnitude <= unit.rangeCollider.radius)
                {
                    closeEnough = true;
                    break;
                }
            }
            if (!closeEnough)
            {
                possibilities[i] = 1;
            }
        }
    }
Beispiel #3
0
    Vector3 GetClosestCoordinate(int coverIndex)
    {
        float lowestDistance = float.MaxValue;
        float tempDistance   = 0;
        int   lowestIndex    = -1;
        GOS   chosenCover    = coverColliders[coverIndex].gameObject.GetComponent <GOS>();

        for (int i = 0; i < 8; i++)
        {
            if (possibilities[i] != emptySlot && possibilities[i] != unit.gameObject.GetInstanceID())
            {
                continue;
            }
            tempDistance = (chosenCover.coordinates[i] - unit.gameObject.transform.position).sqrMagnitude;
            if (tempDistance < lowestDistance)
            {
                lowestDistance = tempDistance;
                lowestIndex    = i;
            }
        }

        return(chosenCover.coordinates[lowestIndex]);
    }
Beispiel #4
0
 void Start()
 {
     cover = transform.parent.gameObject.GetComponent <GOS>();
 }