Beispiel #1
0
    // Update is called once per frame
    private void Update()
    {
        if (_casted)
        {
            transform.position = Vector3.Lerp(transform.position, _orbPosition, Time.deltaTime * 5);
        }

        if (_splitting)
        {
            if (Count <= SpellLevel * 2)
            {
                var x = Instantiate(this);
                x.CastOrigin = CastOrigin;
                x.Count++;
                _splitting = false;
                _shooting  = true;
            }
        }

        if (_shooting)
        {
            if (_target == null)
            {
                _target = ProximityProvider.FindClosestEnemyAsPlayer(CastOrigin);
            }
            else
            {
                transform.position =
                    Vector3.MoveTowards(transform.position, _target.transform.position, Time.deltaTime * 100);
            }
        }
    }
Beispiel #2
0
 private void Update()
 {
     if (Time.time > _stamp)
     {
         _stamp += AttackInterval;
         _target = ProximityProvider.FindEnemyInRange(gameObject, AttackDistance);
         if (_target)
         {
             Shoot();
         }
     }
 }
Beispiel #3
0
        private void OnTriggerEnter(Collider other)
        {
            if (other.gameObject.CompareTag("Enemy"))
            {
                _rb.velocity = Vector3.zero;
                _target      = other.gameObject;
                var all = ProximityProvider.FindEnemiesAround(_target, 1.5f);
                foreach (var o in all)
                {
                    o.GetComponent <Enemy>().SubstarctDamageFromLife_(Damage * 1f, gameObject.GetHashCode());
                }

                _movingTowardEnemy = false;
            }
        }
Beispiel #4
0
        private void Update()
        {
            if (_moovingOverHead)
            {
                transform.position = Vector3.Lerp(transform.position, _overHeadPosition, Time.deltaTime * 5);
            }

            if (_splitting)
            {
                if (Count <= SpellLevel * 2)
                {
                    var x = Instantiate(this);
                    x.SpellLevel = SpellLevel;
                    x.CastOrigin = CastOrigin;
                    x.Count++;
                    _splitting = false;
                    _shooting  = true;
                }
            }

            if (_shooting)
            {
                if (_target == null)
                {
                    _target = ProximityProvider.FindClosestEnemyAsPlayer(CastOrigin);
                    //Debug.Log("Found a target " + _target.gameObject.tag);
                }
                else
                {
                    //transform.LookAt(_target.transform);
                    //transform.Translate(_target.transform.position * Time.deltaTime * 50);
                    //transform.RotateAround(transform.position, Vector3.down, 12f);
                    //_rb.AddForce((_target.transform.position - transform.position) * Speed);
                    transform.position = Vector3.MoveTowards(transform.position,
                                                             _target.transform.position, Time.deltaTime * 100);
                }
                //Debug.Log("Moving to " + _target.transform.position);
                //transform.position = Vector3.MoveTowards(transform.position, _target.transform.position, Time.deltaTime * 100);
            }
        }
Beispiel #5
0
 /// <summary>
 /// The internal constructor.
 /// </summary>
 /// <since_tizen> 3 </since_tizen>
 /// <param name="id">The geofence ID.</param>
 /// <param name="state">The proximity state.</param>
 /// <param name="provider">The proximity provider.</param>
 internal ProximityStateEventArgs(int id, ProximityState state, ProximityProvider provider)
 {
     GeofenceId = id;
     State      = state;
     Provider   = provider;
 }