Ejemplo n.º 1
0
        private void OnDamageTaken(IDamagable source, DamageArgs args)
        {
            HitReceiver    receiver        = (HitReceiver)source;
            float          angle           = Vector3.Angle(args.Dealer.transform.position, receiver.transform.position);
            var            inverseRotation = Quaternion.Euler(0, 0, angle - 180);
            PositionedArgs effectArgs      = new PositionedArgs(receiver.transform.position, inverseRotation);

            PlayEffects(effectArgs);
        }
Ejemplo n.º 2
0
        private void OnForceApplied(IForceable source, ForceArgs args)
        {
            HitReceiver receiver   = (HitReceiver)source;
            HitboxID    hitboxId   = receiver.HitboxID;
            Vector3     totalForce = args.Force * hitboxMapper[hitboxId].ForceMultiplier;

            var bone = receiver.GetComponent <RagdollBone>();

            bone.ApplyForce(new ForceArgs(args.Origin, args.Dealer, totalForce));
        }
Ejemplo n.º 3
0
    void OnCollisionEnter(Collision other)
    {
        //Debug.Log("Collider " + name  + " hit other " + other.gameObject.name);
        HitReceiver hr = other.gameObject.GetComponent <HitReceiver>();

        if (hr != null)
        {
            hr.receiveHit(this);
        }
    }
Ejemplo n.º 4
0
 void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.CompareTag(TagToHit))
     {
         Destroy(gameObject);
         HitReceiver hitReceiver = collision.gameObject.GetComponent <HitReceiver> ();
         if (hitReceiver)
         {
             hitReceiver.ReceiveHit(gameObject);
         }
         else
         {
             Destroy(collision.gameObject);
         }
     }
 }
Ejemplo n.º 5
0
 void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.CompareTag(TagToHit))
     {
         Debug.Log(collision.gameObject);
         if (!gameObject.name.Equals("Shield"))
         {
             Destroy(gameObject);
         }
         HitReceiver hitReceiver = collision.gameObject.GetComponent <HitReceiver> ();
         if (hitReceiver)
         {
             hitReceiver.ReceiveHit(gameObject);
         }
         else
         {
             Destroy(collision.gameObject);
         }
     }
 }
Ejemplo n.º 6
0
    public void OnTriggerEnter2D(Collider2D coll)
    {
        if (!_isActive)
        {
            return;
        }

        HitReceiver target = coll.transform.GetComponent <HitReceiver>();

        if (target != null && target.actor != _shooter && target.actor.isAlive)
        {
            // we have a hit
            target.actor.ApplyDamage(_weapon.amount);
            _isActive = false;             // disarm bullet

            if (hitImage != null)
            {
                _renderer.sprite = hitImage;
            }

            StartCoroutine(RemainAndVanish());
        }
    }