// 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); } } } }
// 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); } }
// 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); } }
// 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!"); } }
// 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); }