Esempio n. 1
0
        // Update is called once per frame
        private void Update()
        {
            var closest = getClosestRangedPig();

            if (!closest)
            {
                if (flammableClosest != null)
                {
                    flammableClosest.deselect();
                    flammableClosest = null;
                }

                return;
            }

            if (flammableClosest != closest)
            {
                if (flammableClosest != null)
                {
                    flammableClosest.deselect();
                }

                flammableClosest = closest;
                flammableClosest.select();
            }

            if (Input.GetKeyDown(KeyCode.E))
            {
                // kill it with fire!!
                closest.startFire();
            }
        }
Esempio n. 2
0
 public void unselectAll()
 {
     if (flammableClosest != null)
     {
         flammableClosest.deselect();
         flammableClosest = null;
     }
 }
Esempio n. 3
0
        private Flammable getClosestRangedPig()
        {
            Flammable best            = null;
            var       closestDistSqr  = Mathf.Infinity;
            var       currentPosition = transform.position;

            foreach (var flammable in pigList.pigs)
            {
                var directionToTarget = flammable.transform.position - currentPosition;
                var distSqrtToTarget  = new Vector2(directionToTarget.x, directionToTarget.y).sqrMagnitude;
                if (!(distSqrtToTarget < closestDistSqr) ||
                    !(distSqrtToTarget < attackRange * attackRange))
                {
                    continue;
                }
                closestDistSqr = distSqrtToTarget;
                best           = flammable;
            }

            return(best);
        }