Пример #1
0
        public override GameObject FireAmmo(IDamager damager, Ray damageRay, LayerMask layerMask, float damageMultiplier)
        {
            Impaler impaler = Impaler.pool.GetPrefabInstance(impalerPrefab);

            System.Action <PhysicsHit> onHitReach = (physicsHit) => {
            };

            List <PhysicsHit> hits = impaler.ShootImpaler(velocity, hitObjectVelocityMultiplier, zMovementLimit, damageRay, maxDistance, layerMask, impalerRadius, kinematicOnReach, useColliderOnReach, lifeTime, onHitReach);

            for (int i = 0; i < hits.Count; i++)
            {
                Damageable damageable = hits[i].hitElements[0].rigidbody.GetComponent <Damageable>();
                if (damageable)
                {
                    damageable.SendDamage(new DamageMessage(damager, baseDamage * damageMultiplier, 0));
                }
            }
            return(impaler.gameObject);
        }
Пример #2
0
 void Awake()
 {
     impaler      = GetComponent <Impaler>();
     lineRenderer = GetComponent <LineRenderer>();
 }