// Token: 0x06001E63 RID: 7779 RVA: 0x00095180 File Offset: 0x00093380
 public override void OnHits(RaycastHit[] hits)
 {
     if (this._trailRenderer)
     {
         foreach (RaycastHit raycastHit in hits)
         {
             MoveTrailrendererObject moveTrailrendererObject = UnityEngine.Object.Instantiate(this._trailRenderer, this._muzzle.position, Quaternion.identity) as MoveTrailrendererObject;
             if (moveTrailrendererObject)
             {
                 moveTrailrendererObject.MoveTrail(raycastHit.point, this._muzzle.position, raycastHit.distance);
             }
         }
     }
 }
Esempio n. 2
0
    // Token: 0x06002012 RID: 8210 RVA: 0x000998D0 File Offset: 0x00097AD0
    private void EmitWaterImpactParticles(Ray ray, float radius)
    {
        Vector3 origin = ray.origin;
        Vector3 vector = origin + ray.direction * radius;

        if (GameState.Current.Map != null && GameState.Current.Map.HasWaterPlane && ((origin.y > GameState.Current.Map.WaterPlaneHeight && vector.y < GameState.Current.Map.WaterPlaneHeight) || (origin.y < GameState.Current.Map.WaterPlaneHeight && vector.y > GameState.Current.Map.WaterPlaneHeight)))
        {
            Vector3 hitPoint = vector;
            hitPoint.y = GameState.Current.Map.WaterPlaneHeight;
            if (!Mathf.Approximately(ray.direction.y, 0f))
            {
                hitPoint.x = (GameState.Current.Map.WaterPlaneHeight - vector.y) / ray.direction.y * ray.direction.x + vector.x;
                hitPoint.z = (GameState.Current.Map.WaterPlaneHeight - vector.y) / ray.direction.y * ray.direction.z + vector.z;
            }
            MoveTrailrendererObject trailRenderer = this.Decorator.TrailRenderer;
            ParticleEffectController.ShowHitEffect(ParticleConfigurationType.MeleeDefault, SurfaceEffectType.WaterEffect, Vector3.up, hitPoint, Vector3.up, origin, 1f, ref trailRenderer, this.Decorator.transform);
        }
    }
Esempio n. 3
0
 // Token: 0x06000894 RID: 2196 RVA: 0x00037978 File Offset: 0x00035B78
 private static void ShowTrailEffect(ParticleConfigurationPerWeapon effect, MoveTrailrendererObject trailRenderer, Transform parent, Vector3 hitPoint, Vector3 muzzlePosition, float distance, Vector3 direction)
 {
     if (effect.WeaponImpactEffectConfiguration.UseTrailrendererForTrail)
     {
         if (effect.WeaponImpactEffectConfiguration.TrailrendererTrailPrefab != null)
         {
             if (trailRenderer == null)
             {
                 trailRenderer = (UnityEngine.Object.Instantiate(effect.WeaponImpactEffectConfiguration.TrailrendererTrailPrefab, muzzlePosition, Quaternion.identity) as MoveTrailrendererObject);
                 trailRenderer.gameObject.transform.parent = parent;
             }
             trailRenderer.MoveTrail(hitPoint, muzzlePosition, distance);
         }
     }
     else
     {
         ParticleEmissionSystem.TrailParticles(hitPoint, direction, effect.WeaponImpactEffectConfiguration.TrailParticleConfigurationForInstantHit, muzzlePosition, distance);
     }
 }
Esempio n. 4
0
    // Token: 0x06000893 RID: 2195 RVA: 0x00037754 File Offset: 0x00035954
    public static void ShowHitEffect(ParticleConfigurationType effectType, SurfaceEffectType surface, Vector3 direction, Vector3 hitPoint, Vector3 hitNormal, Vector3 muzzlePosition, float distance, ref MoveTrailrendererObject trailRenderer, Transform parent, int damage)
    {
        if (ParticleEffectController.Exists)
        {
            ParticleConfigurationPerWeapon particleConfigurationPerWeapon = ParticleEffectController.Instance._allConfigurations[effectType];
            if (particleConfigurationPerWeapon != null)
            {
                ParticleEffectController.ShowTrailEffect(particleConfigurationPerWeapon, trailRenderer, parent, hitPoint, muzzlePosition, distance, direction);
                switch (surface)
                {
                case SurfaceEffectType.Default:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.FireParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.FireParticleConfigurationForInstantHit);
                    }
                    break;

                case SurfaceEffectType.WoodEffect:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.HitMaterialParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.SurfaceParameterSet.WoodEffect);
                        ParticleEmissionSystem.FireParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.FireParticleConfigurationForInstantHit);
                    }
                    break;

                case SurfaceEffectType.WaterEffect:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.WaterCircleParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.SurfaceParameterSet.WaterCircleEffect);
                    }
                    break;

                case SurfaceEffectType.StoneEffect:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.HitMaterialParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.SurfaceParameterSet.StoneEffect);
                        ParticleEmissionSystem.FireParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.FireParticleConfigurationForInstantHit);
                    }
                    break;

                case SurfaceEffectType.MetalEffect:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.HitMaterialParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.SurfaceParameterSet.MetalEffect);
                        ParticleEmissionSystem.FireParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.FireParticleConfigurationForInstantHit);
                    }
                    break;

                case SurfaceEffectType.GrassEffect:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.HitMaterialParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.SurfaceParameterSet.GrassEffect);
                        ParticleEmissionSystem.FireParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.FireParticleConfigurationForInstantHit);
                    }
                    break;

                case SurfaceEffectType.SandEffect:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.HitMaterialParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.SurfaceParameterSet.SandEffect);
                        ParticleEmissionSystem.FireParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.FireParticleConfigurationForInstantHit);
                    }
                    break;

                case SurfaceEffectType.Splat:
                    if (ParticleEffectController.CheckVisibility(hitPoint))
                    {
                        ParticleEmissionSystem.HitMaterialRotatingParticles(hitPoint, hitNormal, particleConfigurationPerWeapon.WeaponImpactEffectConfiguration.SurfaceParameterSet.Splat);
                    }
                    break;
                }
            }
        }
        else
        {
            Debug.LogError("ParticleEffectController is not attached to a gameobject in scene!");
        }
    }
Esempio n. 5
0
 // Token: 0x06000892 RID: 2194 RVA: 0x00037730 File Offset: 0x00035930
 public static void ShowHitEffect(ParticleConfigurationType effectType, SurfaceEffectType surface, Vector3 direction, Vector3 hitPoint, Vector3 hitNormal, Vector3 muzzlePosition, float distance, ref MoveTrailrendererObject trailRenderer, Transform parent)
 {
     ParticleEffectController.ShowHitEffect(effectType, surface, direction, hitPoint, hitNormal, muzzlePosition, distance, ref trailRenderer, parent, 0);
 }