// Token: 0x06000EBE RID: 3774 RVA: 0x000489C0 File Offset: 0x00046BC0 public void SimpleMuzzleFlash(GameObject effectPrefab, GameObject obj, string muzzleName, bool transmit) { if (!obj) { return; } ModelLocator component = obj.GetComponent <ModelLocator>(); if (component && component.modelTransform) { ChildLocator component2 = component.modelTransform.GetComponent <ChildLocator>(); if (component2) { int childIndex = component2.FindChildIndex(muzzleName); Transform transform = component2.FindChild(childIndex); if (transform) { EffectData effectData = new EffectData { origin = transform.position }; effectData.SetChildLocatorTransformReference(obj, childIndex); EffectManager.instance.SpawnEffect(effectPrefab, effectData, transmit); } } } }
// Token: 0x06000B38 RID: 2872 RVA: 0x0004B60C File Offset: 0x0004980C public void CreateEffect(AnimationEvent animationEvent) { Transform transform = this.childLocator.FindChild(animationEvent.stringParameter); EffectData effectData = new EffectData(); effectData.origin = transform.position; effectData.SetChildLocatorTransformReference(base.gameObject, this.childLocator.FindChildIndex(animationEvent.stringParameter)); EffectManager.instance.SpawnEffect((GameObject)animationEvent.objectReferenceParameter, effectData, animationEvent.intParameter != 0); }
// Token: 0x060005D7 RID: 1495 RVA: 0x0001834C File Offset: 0x0001654C public void CreateEffect(AnimationEvent animationEvent) { Transform transform = base.transform; int num = -1; if (!string.IsNullOrEmpty(animationEvent.stringParameter)) { num = this.childLocator.FindChildIndex(animationEvent.stringParameter); if (num != -1) { transform = this.childLocator.FindChild(num); } } bool transmit = animationEvent.intParameter != 0; EffectData effectData = new EffectData(); effectData.origin = transform.position; effectData.SetChildLocatorTransformReference(this.bodyObject, num); EffectManager.SpawnEffect((GameObject)animationEvent.objectReferenceParameter, effectData, transmit); }
// Token: 0x0600042F RID: 1071 RVA: 0x000113A0 File Offset: 0x0000F5A0 private void FireSingle(Vector3 normal, int muzzleIndex) { float num = this.maxDistance; Vector3 vector = this.origin + normal * this.maxDistance; List <BulletAttack.BulletHit> list = new List <BulletAttack.BulletHit>(); bool flag = this.radius == 0f || this.smartCollision; bool flag2 = this.radius != 0f; HashSet <GameObject> hashSet = null; if (this.smartCollision) { hashSet = new HashSet <GameObject>(); } if (flag) { RaycastHit[] array = Physics.RaycastAll(this.origin, normal, num, this.hitMask, this.queryTriggerInteraction); for (int i = 0; i < array.Length; i++) { BulletAttack.BulletHit bulletHit = default(BulletAttack.BulletHit); this.InitBulletHitFromRaycastHit(ref bulletHit, this.origin, normal, ref array[i]); list.Add(bulletHit); if (this.smartCollision) { hashSet.Add(bulletHit.entityObject); } if (bulletHit.distance < num) { num = bulletHit.distance; } } } if (flag2) { LayerMask mask = this.hitMask; if (this.smartCollision) { mask &= ~LayerIndex.world.mask; } RaycastHit[] array2 = Physics.SphereCastAll(this.origin, this.radius, normal, num, mask, this.queryTriggerInteraction); for (int j = 0; j < array2.Length; j++) { BulletAttack.BulletHit bulletHit2 = default(BulletAttack.BulletHit); this.InitBulletHitFromRaycastHit(ref bulletHit2, this.origin, normal, ref array2[j]); if (!this.smartCollision || !hashSet.Contains(bulletHit2.entityObject)) { list.Add(bulletHit2); } } } this.ProcessHitList(list, ref vector, new List <GameObject>()); if (this.tracerEffectPrefab) { EffectData effectData = new EffectData { origin = vector, start = this.origin }; effectData.SetChildLocatorTransformReference(this.weapon, muzzleIndex); EffectManager.SpawnEffect(this.tracerEffectPrefab, effectData, true); } }