Beispiel #1
0
        public override void Hit(HitInformation hitInformation)
        {
            base.Hit(hitInformation);

            if(!gameObject.activeInHierarchy)
                return;

            if (pushRoutine != null)
            {
                StopCoroutine(pushRoutine);
                pushRoutine = null;
            }
            pushRoutine = StartCoroutine(PushBackRoutine(hitInformation));
        }
        protected void ApplyEffect(IHitByBullet[] affectedObjects, Vector3 point)
        {
            for (int i = 0; i < affectedObjects.Length; i++)
            {
                IHitByBullet affectedObject = affectedObjects[i];

                HitInformation hitInfo = new HitInformation
                {
                    Weapon      = baseWeapon,
                    Bullet      = this,
                    Shooter     = baseWeapon.Owner,
                    HitPosition = point
                };
                affectedObject.Hit(hitInfo);
            }
        }
Beispiel #3
0
        protected void ApplyEffect(IHitByBullet[] affectedObjects, Vector3 point)
        {
            for (int i = 0; i < affectedObjects.Length; i++)
            {
                IHitByBullet affectedObject = affectedObjects[i];

                HitInformation hitInfo = new HitInformation
                {
                    Weapon = baseWeapon,
                    Bullet = this,
                    Shooter = baseWeapon.Owner,
                    HitPosition = point
                };
                affectedObject.Hit(hitInfo);
            }
        }
Beispiel #4
0
 private void OnEnemyDied(HitInformation hitInformation)
 {
     AddScore(ENEMY_SCORE);
 }
Beispiel #5
0
 private IEnumerator PushBackRoutine(HitInformation hitInformation)
 {
     Vector3 direction = hitInformation.HitPosition - hitInformation.Shooter.transform.position;
     rigidbody.isKinematic = false;
     rigidbody.AddForce(direction.normalized* 30, ForceMode.Impulse);
     yield return new WaitForSeconds(0.05f);
     rigidbody.isKinematic = true;
 }
Beispiel #6
0
 public virtual void Hit(HitInformation hitInformation)
 {
     lastHitInformation = hitInformation;
     attributePool.GetAttribute(AttributeType.Health)
                  .ChangeValue(-lastHitInformation.Weapon.GetWeaponDefinition().GetDamage());
 }